這裏是我的html頁面的一段jQuery代碼XML字符串和解析使用jQuery
$.ajax({
url: 'userlist.php',
type: 'post',
data: 'id='+extr,
success: function(results){
$("#uservidshow").text("Page Title: "+$(results).find("vidlist").attr("title"));
//$("#uservidshow").text(results);
$(results).find("vids").each(function(){
$("#uservidshow").append("<br/><br/>Video Name: "+$(this).attr("vtitle")+"<br/>Link: "+$(this).attr("link")+"<br/>Description: "+$(this).find("descr").text()+"<br/><br/>");
});
}
});
---這裏是被顯示在DIV#uservidshow輸出---
頁標題:未定義
視頻名稱:兒童視頻
鏈接: http://www.youtube.com/watch?v=PIchX1LX0
說明:
我的問題是:
爲什麼我得到 '未定義' 頁面的標題?
爲什麼我在描述中顯示空白而不是顯示cdata內容?
---這裏是一塊從userlist.php代碼---
<?php
$getid=$_POST['id'];
....
[few lines of code]
....
$pickfrmtab= mysql_query("SELECT * FROM mytable WHERE userid='$getid'");
if(mysql_num_rows($pickfrmtab)==1){
while($row = mysql_fetch_array($pickfrmtab)){
echo htmlspecialchars_decode($row['pagecontent'], ENT_QUOTES); //'pagecontent' contains my xml string
}
}else{
echo "Unable to get PLAYLIST";
}
?>
---這裏是在存儲在數據庫中的XML字符串列名'pagecontent'---
<?xml version='1.0' encoding='UTF-8' ?><vidlist title='My Fav Videos'>
<vids link='http://www.youtube.com/watch?v=PIchX1LX0' vtitle='Kids video'>
<descr><![CDATA[this is nice]]></descr>
</vids>
<comment allow='no'></comment>
</vidlist>
正如你可能已經猜到了,我已經將其插入到數據庫之前應用的htmlspecialchars(),以實際的XML字符串
$xmldata="<?xml version='1.0' encoding='UTF-8' ?>".$_POST['actualxmlstrng'];
$xmldata_safe=htmlspecialchars($xmldata, ENT_QUOTES);
//inserted $xmldata_safe into the datacbase field 'pagecontent' SUCCESSFULLY
只給你一個想法,這就是$ XMLDATA看起來像在申請前用htmlspecialchars:
<?xml version='1.0' encoding='UTF-8' ?>
<vidlist title='My Fav Videos'>
<vids link='http://www.youtube.com/watch?v=PIchX1LX0' vtitle='Kids video'>
<descr><![CDATA[this is nice]]></descr>
</vids>
<comment allow='no'></comment>
</vidlist>
編輯:花了大量的時間和打破我的頭試圖弄清楚這一點之後,我總算得到它的工作。 –
...但我還是不明白這種馬車行爲的原因。爲了使它工作,我不得不從我的數據庫中刪除整個<?xml ... encoding聲明行,然後在我的ajax函數中插入$ .parseXml()... var xmlDoc = $。parseXML(results); $ myxml = $(xmlDoc); $(「#uservidshow」)。text(「Page Title:」+ $ myxml.find(「vidlist」)。attr(「title」)); –