开发者

Simplexml_load_string() removing a lot of content

Simplexml_load_string is removing a lot of content that is passing into it.

var_dump($cleaned);
<item>
   <title><![CDATA[Honda Motor Company: Motorcycles to the Civic and Accord]]></title>
   <link>http://www.link.com/index.php?id=9987</link>
   <description><![CDATA[Though this company is famous for its cars, it actually started as a motorcycle manufacturer. http://www.link.com takes a look at the history of the Honda Motor Company, from its popular motorcycles to the Civic and the Accord.]]>    </description>
   <pubDate>Fri, 23 Sep 2011 10:55:50 -0400</pubDate>
   <guid>https://link.cloudfront.net/581575d3053ac1a578065c10f2bac1be.mp4</guid>
   <media:title><![CDATA[Honda Motor Company: Motorcycles to the Civic and Accord]]>    </media:title>
<media:description><![CDATA[Though this company is famous for its cars, it actually started as a motorcycle manufacturer. http://www.link.com takes a look at the history of the Honda Motor Company, from its popular motorcycles to the Civic and the Accord.]]></media:description>

<media:keywords><![CDATA[Honda Motor Company, Honda, motorcycles, Japan, Civic, Accord, Formula 1, F1, Acura, fuel efficiency, hybrid, ASIMO, robot, aviation, Dream D, Isle of Man races, Super Cub, auto, automotive, automobile, automaker, cars, driving, history, Soichiro Honda]]></media:keywords>
<media:tags><![CDATA[Asian History, Automakers, Company Profiles, Honda Motor Company, Honda, motorcycles, Japan, Civic, Accord, Formula 1, F1, Acura, fuel efficiency, hybrid, robot, aviation, auto, automotive, automobile, automaker, cars, driving, history, Soichiro Honda]]></media:tags>
<media:category><![CDATA[/Video/Auto/Reviews and Profiles]]></media:category>
<media:thumbnail url="http://link.cloudfront.net/images/linkthumbs/A-RP-Honda-480i60_100x57.jpg"/>   
<media:content url="https://link.cloudfront.net/581575d3053ac1a578065c10f2bac1be.mp4"  type="video/mp4" >
  <media:thumbnail url="http://link.cloudfront.net/images/linkthumbs/A-RP-Honda-480i60_100x57.jpg"/>
  <media:player url="http://www.link.com/index.php?id=9987"><![CDATA[<embed src="https://link.cloudfront.net/581575d3053ac1a578065c10f2bac1be.mp4" type=开发者_StackOverflow社区"application/x-shockwave-flash" wmode="transparent" width="480" height="270"></embed>]]></media:player>
  <media:text_content><![CDATA[Long description.]]></media:text_content>
  <media:filename><![CDATA[]]></media:filename>

  <media:author><![CDATA[Rebecca Brayton]]></media:author>
  <media:bliptv_thumbnail><![CDATA[A-RP-Honda-480i60_480x270.jpg]]></media:bliptv_thumbnail>
  <media:preference_rate><![CDATA[4]]></media:preference_rate>
</media:content>

After running the code below

$xml = simplexml_load_string(utf8_encode($cleaned), 'SimpleXMLElement', LIBXML_NOCDATA);

It returns

["item"]=>
array(100) {
  [0]=>
  object(SimpleXMLElement)#4 (5) {
    ["title"]=>
    string(56) "Honda Motor Company: Motorcycles to the Civic and Accord"
    ["link"]=>
    string(42) "http://www.link.com/index.php?id=9987"
    ["description"]=>
    string(232) "long description."
    ["pubDate"]=>
    string(31) "Fri, 23 Sep 2011 10:55:50 -0400"
    ["guid"]=>
    string(74) "https://link.cloudfront.net/581575d3053ac1a578065c10f2bac1be.mp4"
  }

No other code is being ran before this and I just can't seem to figure out why on earth this is happening. Anyone know the reason behind this, is it due to the utf-8 encode?


You need to call SimpleXMLElement->children() with the "media" namespace to get the portions which are of the <media:xxx> kind of format, or pass the $ns argument to simplexml_load_string() to specify the namespace you want to load:

$xml = simplexml_load_string(utf8_encode($cleaned), 'SimpleXMLElement', LIBXML_NOCDATA, 'media');

http://www.php.net/manual/en/function.simplexml-load-string.php

http://www.php.net/manual/en/simplexmlelement.children.php

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜