Justin's Words

SimpleXML 解析 xml 类似 content:encoded 标签

其实你如果查看我的博客的 rss,会发现有类似 <content:encoded><atom:link> 这种标签存在,那么怎么用 PHP 获取这种标签的信息呢? 以下是一个带有 <content:encoded> 的 xml 片段: fragment.xml

1
2
3
4
5
6
7
<item>
<content:encoded xml:lang="zh-CN">
<![CDATA[
我是 xml 片段
]]>
</content:encoded>
</item>

使用 SimpleXML 进行加载:

1
2
<?php
$xml = simplexml_load_file('fragment.xml');

这里将会用到 SimpleXMLElement::childrenxml 解析:

1
2
$content = $xml->children('content', true)->encoded;
echo $content;

这样就行了(^o^)/~

诶里面还有个 xml:lang="zh-CN" 的属性,怎么获得啊?一样的,就是使用的方法不同,这里用到 SimpleXMLElement::attributes

1
2
$lang = $xml->children('content', true)->encoded->attributes('xml', true)->lang;
echo $lang; // zh-CN