26. februar 2010 - 00:03
Der er
9 kommentarer
Æ,ø og å i en XML fil, hvordan?
Hej eksperter Jeg laver dataudtræk fra en mysql database til xml filer, men når der er æ,ø og å i dataen, så fejler XML filen. Mit tegnsæt i xmlfilen er utf-8 og i databasen, er feltet indstillet til at være : utf-8-danish Hvad kan årsagen være til at den fejler? Her er min kode: <?php header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" ); header("Cache-Control: no-cache, must-revalidate" ); header("Pragma: no-cache" ); header("Content-Type: text/xml; charset=utf-8"); include($_SERVER['DOCUMENT_ROOT']."/config/config.inc.php"); $q = mysql_query("SELECT * FROM videos WHERE vidId='".$_REQUEST["vid"]."'", $MysqlConnRead); $r = mysql_fetch_assoc($q); $xml = '<?xml version="1.0"?> '; $xml .= '<root> '; $xml .= '<video id="' . $_REQUEST['vid'] . '"> '; $xml .= '<title>' . htmlspecialchars($r['vidName']) . '</title> '; $xml .= '<description>' . htmlspecialchars($r['vidDescription']) . '</description> '; $xml .= '<imageID>' . htmlspecialchars($r['vidThumbnailId']) . '</imageID> '; $xml .= '</video> '; $xml .= '</root>'; echo $xml; ?> Derudover hvis et felt er tomt og jeg gennem javascript loader xml filen ind (ajax), så sker der fejl, hvis et felt er tomt. Hvad kan jeg gøre der? På forhånd tak for hjælpen. Med venlig hilsen Steffen
Annonceindlæg fra Infor
26. februar 2010 - 00:25
#1
htmlspecialchars i XML ??
26. februar 2010 - 00:26
#2
Muligvis kan du proeve med utf8_encode funktionen paa de ting som indeholder danske bogstaver.
26. februar 2010 - 00:39
#3
okay tak, det prøver jeg lige :)
26. februar 2010 - 00:41
#4
Fantastisk - det virker sku - tusind tak :) Nu har jeg kun det sidste problem, det er når der ikke er noget indhold i fx. <description>, så fejler mit javascript. Hvad kan man gøre der? :)
26. februar 2010 - 01:12
#5
Fixe JavaScriptet så det kan klare tomme felter !?!?
27. februar 2010 - 16:29
#6
Ökay, hvordan gør jeg det? Min kode er: if(infoObj.readyState == 4) { var xmldoc = infoObj.responseXML; var videoNodes = xmldoc.getElementsByTagName("video"); var info_div = document.getElementById('divInfo'); var videoName = videoNodes[0].getElementsByTagName("title"); var imageID = videoNodes[0].getElementsByTagName("imageID"); var videoDescr = videoNodes[0].getElementsByTagName("description"); info_div.innerHTML = "<span class=\"Title\">" + videoName[0].firstChild.nodeValue + "</span><br><br>"; info_div.innerHTML += "<img src=\"/getimage.php?id=\" class=\"thumbImage\">"; info_div.innerHTML += "<span class=\"descriptionText\">" + videoDescr[0].firstChild.nodeValue + "</span><div id=\"clear\"></div>"; På forhånd tak :)
27. februar 2010 - 16:41
#7
Jeg fandt ud af det :) Til jer, som gerne vil vide det, så laver jeg bare et tjek på om description har nogen childnodes. if (videoNodes[0].getElementsByTagName('description')[0].hasChildNodes()) { var videoDescr = videoNodes[0].getElementsByTagName("description"); videoDescr = videoDescr[0].firstChild.nodeValue; } else { var videoDescr = ""; }
27. februar 2010 - 22:08
#8
så smider jeg et svar for utf8_encode
26. april 2010 - 03:48
#9
så mangler du bare at acceptere
Kurser inden for grundlæggende programmering