用xri解析php xml

时间:2014-05-30 12:43:14

标签: php xml-parsing

如何解析以下xml代码?我正在尝试以下方法: echo $ xml [0] - > entry [0] - > content [0];但我得到空值

<entry>
    <id>https://api.datamarket.azure.com/Data.ashx/MRC/MicrosoftAcademic/v2/Author(101612)</id>
    <category term="MRC.MicrosoftAcademic.Author" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
    <link rel="edit" title="Author" href="Author(101612)" /><title />
    <updated>2014-05-26T12:45:01Z</updated>
    <author>
    <name />
    </author>
    <content type="application/xml">
    <m:properties>
    <d:ID m:type="Edm.Int32">101612</d:ID>
    <d:Name>Omar Abou Khaled</d:Name>
    <d:NativeName m:null="true" />
    <d:Affiliation>University of Applied Sciences of Western Switzerland</d:Affiliation>
    <d:AffiliationID m:type="Edm.Int32">0</d:AffiliationID>
    <d:Email m:null="true" />
    <d:Homepage>http://omar.aboukhaled.home.hefr.ch/</d:Homepage>
    <d:Version m:type="Edm.Int32">11024</d:Version>
    <d:LinkedInUrl m:null="true" />
    <d:WikipediaUrl m:null="true" />
    <d:TwitterUserName m:null="true" />
    <d:ResearchInterests m:null="true" />
    </m:properties>
    </content>
</entry>

1 个答案:

答案 0 :(得分:0)

如果您使用simplexml

解析此xml
$xml = simplexml_load_file(__DIR__ . '/file.xml');

enty 是根节点。因此,要获得内容节点,应使用直接调用内容:

print_r($xml->content);

获取内容类型:

print_r($xml->content['type']);

等等。

Jay在评论中留下的链接非常有用。

同样可能存在关于命名空间的错误,要快速消除它,只需更新根节点,如:

<entry xmlns:m="/" xmlns:d="/">