2010-06-16 5 views
0

Besoin d'aide ici pour les éléments suivants:Comment remplacer les caractères invalides en XML en utilisant Javascript ou PhP

En cours d'exécution PhP, javascript, MySQL, XML.

1) Récupérer un fichier de MySQL et le stocker dans un fichier XML.
2) Utilisez la fonction javascript pour charger le fichier XML (qui a stocké ces données).
3) Il produit des caractères invalides dans le fichier XML.

ÉTAPE 1: Exemple du code en Php -> Chargement MySQL DB pour stocker des données sur un fichier XML

$file= fopen("MapDeals2.xml", "w"); 
$_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"; 
$_xml .="<MAP>\n"; 

while($row1_ThisWeek = mysql_fetch_array($result1_ThisWeek)) { 
    $rRName = $row1_ThisWeek['Retailer_Name']; 
    $rRAddress = $row1_ThisWeek['Retailer_Address1']; 
    $rRAddressPostCode = $row1_ThisWeek['Retailer_AddressPostCode1']; 

//} commented out from the original 


    $_xml .= "<DEAL>\n"; 
    $_xml .= "<DealDescription>" . $d_Description . "</DealDescription>\n"; 
    $_xml .= "<DealURL>" . $d_URL . "</DealURL>\n"; 
    $_xml .= "<DealRName>" . $rRName . "</DealRName>\n"; 
    $_xml .= "<DealRAddress>" . $rRAddress . "</DealRAddress>\n"; 
    $_xml .= "<DealRPostCode>" . $rRAddressPostCode . "</DealRPostCode>\n"; 
    $_xml .= "</DEAL>\n"; 

} 


//} commented out from the original 
$_xml .="</MAP>\n"; 
fwrite($file, $_xml); 
fclose($file); 

ÉTAPE 2: Exemple du code dans javscript -> fichier XML de chargement

xhttp.open("GET","Test2.xml", false); 
xhttp.send(""); 
xmlDoc=xhttp.responseXML; 

var x=xmlDoc.getElementsByTagName("Employee"); 

parser = new DOMParser(); 
xmlDoc = parser.parseFromString("MapDeals2.xml", "text/xml"); 


for (i=0;i<x.length;i++) 
{ 
// alert ('Generating FOR loop'); 
    var d1 = x[i].getElementsByTagName("EmployeeDescription")[0].childNodes[0].nodeValue; 
    var e1 = "<br></br>"; 
. 
. 
. 


} 

Existe-t-il une solution pour ce qui précède? J'ai hâte d'avoir bientôt de tes nouvelles.

Salutations

+0

Votre code est un bordel. Tout en essayant de le nettoyer, il avait deux accolades de fermeture de plus que l'ouverture des accolades. Je les ai commentés. Veuillez modifier votre question si cette modification ne correspond pas à votre code. – Artefacto

Répondre

0

C'est probablement un problème de charset. Votre connexion MySQL a un encodage iso-8859-1 ou quelque chose comme ça, alors que le XML devrait être en UTF8. Vous devez le convertir quelque part.

Questions connexes