2014-05-14 53 views
0

我有一个用来解析XML数据的PHP代码,但它不工作,我的PHP代码看起来如下:PHP:SimpleXML的解析节点

<?php 
      $xml = '<?xml version="1.0" encoding="utf-8"?> 
       <videos> 
        <video> 
         <id>751985</id> 
         <embed><![CDATA[somehtmlcode]]></embed> 
         <thumbs> 
          <thumb><![CDATA[http://example.com/images/thum01.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum02.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum03.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum04.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum05.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum06.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum07.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum08.jpg></thumb> 
         </thumbs> 
         <link><![CDATA[http://example.com/001]]></link> 
         <title><![CDATA[Some cool title 1]]></title> 
         <categories> 
          <category><![CDATA[Cat1]]></category> 
          <category><![CDATA[Cat2]]></category> 
          <category><![CDATA[Cat3]]></category> 
          <category><![CDATA[Cat4]]></category> 
         </categories> 
         <tags> 
          <tag><![CDATA[tag1]></tag> 
          <tag><![CDATA[tag2]></tag> 
          <tag><![CDATA[tag3]></tag> 
         </tags> 
         <someone> 
         </someone> 
         <duration><![CDATA[8:17]]></duration> 
         <pubDate><![CDATA[2014-05-14]]></pubDate> 
        </video> 
        <video> 
         <id>751988</id> 
         <embed><![CDATA[somehtmlcode]]></embed> 
         <thumbs> 
          <thumb><![CDATA[http://example.com/images/thum01.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum02.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum03.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum04.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum05.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum06.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum07.jpg></thumb> 
          <thumb><![CDATA[http://example.com/images/thum08.jpg></thumb> 
         </thumbs> 
         <link><![CDATA[http://example.com/001]]></link> 
         <title><![CDATA[Some cool title 1]]></title> 
         <categories> 
          <category><![CDATA[Cat1]]></category> 
          <category><![CDATA[Cat2]]></category> 
          <category><![CDATA[Cat3]]></category> 
          <category><![CDATA[Cat4]]></category> 
         </categories> 
         <tags> 
          <tag><![CDATA[tag1]></tag> 
          <tag><![CDATA[tag2]></tag> 
          <tag><![CDATA[tag3]></tag> 
         </tags> 
         <someone> 
         </someone> 
         <duration><![CDATA[8:17]]></duration> 
         <pubDate><![CDATA[2014-05-14]]></pubDate> 
        </video> 
       </videos>'; 



     $sxe = simplexml_load_string($xml);  

     foreach ($sxe->video as $videoChild) { 
     echo $videoChild->id; 
     echo $videoChild->title; 


     } 

?> 

它没有得到节点的值,我需要获取ID,嵌入,缩略图,链接,标题,没有CDATA标签。任何帮助都会很棒。

+0

它的回声'<![CDATA [somehtmlcode]!> '还是一无所有?为什么甚至使用CDATA部分? –

+0

正确地为'thumb'和'tag'标签关闭您的''。在关闭xml标签 – Ejaz

回答

1
<thumb><![CDATA[http://example.com/images/thum01.jpg></thumb> 

了[CDATA]东西都没有正确关闭,simplexml_load_string()不一样,

尝试

<thumb><![CDATA[http://example.com/images/thum01.jpg]]></thumb> 
+0

之前必须有']]>''''但是如何在foreach中使用foreach来获取全部的拇指url? – user1353563

+0

目前我只能使用第一个拇指网址: foreach($ videoChild-> thumbs as $ thumbChild){ echo $ thumbChild-> thumb。“\ n”; } – user1353563

+0

没有更多答案?我需要循环到拇指才能得到拇指 – user1353563