【问题标题】:How to parse XML file using php如何使用 php 解析 XML 文件
【发布时间】:2012-02-05 05:38:40
【问题描述】:

我想解析以下xml并获取metadata:description using php的值

我知道如何获取title的值

$item_title = $x -> item($i) -> getElementsByTagName('title') -> item(0) -> childNodes -> item(0) -> nodeValue;

但不能用这种方式获取元数据:描述

<item>
  <title>Jobs: Bullish Economy Confirmed?</title>
  <metadata:title xmlns:metadata="http://search.cnbc.com/rss/2.0/modules/siteContentMetadata">Jobs: Bullish Economy Confirmed?  06 Jan 2012</metadata:title>
  <description>Discussing whether the better than expected jobs number point to an economic rebound, and where to invest in this market, with Michael Farr, Farr, Miller, &amp; Washington president.</description>
  <metadata:description xmlns:metadata="http://search.cnbc.com/rss/2.0/modules/siteContentMetadata"><![CDATA[<div class="rss_image" style="float:left;padding-right:10px;"><img border="0" vspace="0" hspace="0" width="93" src="http://thumbnails.cnbc.com/VCPS/Y2012/M01D06/3000066213/6ED1-KR-Jobs_sm.jpg"></div><div class="rss_abstract" style="font:Arial 12px;width:100%;float:left;clear:both">Discussing whether the better than expected jobs number point to an economic rebound, and where to invest in this market, with Michael Farr, Farr, Miller, &amp; Washington president.</div>]]></metadata:description>
  <pubDate>Sat, 07 Jan 2012 00:24 GMT</pubDate>
  <guid isPermaLink="false">http://www.cnbc.com//id/15840232?video=3000066213&amp;play=1</guid>
  <link>http://www.cnbc.com//id/15840232?video=3000066213&amp;play=1</link>
</item>

原始xml文件链接

http://www.cnbc.com/id/19838222/device/rss/rss.xml

【问题讨论】:

    标签: php xml xml-parsing


    【解决方案1】:

    使用SimpleXML

    $xmlstr='<item>
    <title>Jobs: Bullish Economy Confirmed?</title>
    <metadata:title xmlns:metadata="http://search.cnbc.com/rss/2.0/modules/siteContentMetadata">Jobs: Bullish Economy Confirmed?  06 Jan 2012</metadata:title>
    <description>Discussing whether the better than expected jobs number point to an economic rebound, and where to invest in this market, with Michael Farr, Farr, Miller, &amp; Washington president.</description>
    <metadata:description xmlns:metadata="http://search.cnbc.com/rss/2.0/modules/siteContentMetadata"><![CDATA[<div class="rss_image" style="float:left;padding-right:10px;"><img border="0" vspace="0" hspace="0" width="93" src="http://thumbnails.cnbc.com/VCPS/Y2012/M01D06/3000066213/6ED1-KR-Jobs_sm.jpg"></div><div class="rss_abstract" style="font:Arial 12px;width:100%;float:left;clear:both">Discussing whether the better than expected jobs number point to an economic rebound, and where to invest in this market, with Michael Farr, Farr, Miller, &amp; Washington president.</div>]]></metadata:description>
    <pubDate>Sat, 07 Jan 2012 00:24 GMT</pubDate>
    <guid isPermaLink="false">http://www.cnbc.com//id/15840232?video=3000066213&amp;play=1</guid>
    <link>http://www.cnbc.com//id/15840232?video=3000066213&amp;play=1</link>
    </item>';
    
    $x= new SimpleXMLElement($xmlstr);
    echo $x->title;
    $nss = $x->getNameSpaces(true);
    $metadata = $x->children($nss['metadata']); 
    echo $metadata->title, "\n";
    echo $metadata->description, "\n";
    

    输出

    Jobs: Bullish Economy Confirmed?Jobs: Bullish Economy Confirmed?  06 Jan 2012
    <div class="rss_image" style="float:left;padding-right:10px;"><img border="0" vspace="0" hspace="0" width="93" src="http://thumbnails.cnbc.com/VCPS/Y2012/M01D06/3000066213/6ED1-KR-Jobs_sm.jpg"></div><div class="rss_abstract" style="font:Arial 12px;width:100%;float:left;clear:both">Discussing whether the better than expected jobs number point to an economic rebound, and where to invest in this market, with Michael Farr, Farr, Miller, &amp; Washington president.</div>
    

    【讨论】:

    • 我尝试解析这个 xml cnbc.com/id/19838222/device/rss/rss.xml,但是当我使用 SimpleXMLElement 时出现错误。有什么建议吗?
    • 致命错误:未捕获的异常“异常”,消息“字符串无法解析为 XML”
    • 当您的 XML 输入为空或格式不正确时,会显示“无法将字符串解析为 XML”错误。请先检查您的输入。
    猜你喜欢
    • 1970-01-01
    • 2020-03-30
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 2011-05-06
    • 2012-10-24
    • 1970-01-01
    相关资源
    最近更新 更多