XML字符串和解析使用jQuery

问题描述:

这里是我的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'---

&lt;?xml version=&#039;1.0&#039; encoding=&#039;UTF-8&#039; ?&gt;&lt;vidlist title=&#039;My Fav Videos&#039;&gt; 
&lt;vids link=&#039;http://www.youtube.com/watch?v=PIchX1LX0&#039; vtitle=&#039;Kids video&#039;&gt; 
&lt;descr&gt;&lt;![CDATA[this is nice]]&gt;&lt;/descr&gt; 
&lt;/vids&gt; 
&lt;comment allow=&#039;no&#039;&gt;&lt;/comment&gt; 
&lt;/vidlist&gt; 

正如你可能已经猜到了,我已经将其插入到数据库之前应用的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> 
+0

编辑:花了大量的时间和打破我的头试图弄清楚这一点之后,我总算得到它的工作。 –

+0

...但我还是不明白这种马车行为的原因。为了使它工作,我不得不从我的数据库中删除整个

您还没有发布的数据正确

使用此代码

$.ajax({ 
url: 'userlist.php', 
       type: 'post', 
       data: {'id=': extr}, 
       dataType: "xml", 
        ..... 

,或者您可以使用

$.ajax({ 

       type: 'GET', 
       url: 'userlist.php?id='+extr, 
       dataType: "xml", 
        ..... 
+0

谢谢,但我没有在POSTING数据(ID)的麻烦。问题是只有在阅读我的xml的时候。这也只是“部分”的XML数据没有被jQuery读取 –