带双冒号的simpleXML

时间:2016-04-01 00:00:48

标签: php xml simplexml

我正在尝试使用简单的XML来显示PHP中XML源的结果。

这是我的PHP

$url = 'http://somefeed.xml';
$xml = file_get_contents($url);
$xml = simplexml_load_string($xml);


foreach($xml->entry as $x) {
    echo "Name".$x->title."<br>";

}

这是我试图显示的xml文件的外观

<entry>
        <id>test ed</id>
        <title type="text">My House</title>
        <updated>2016-03-31T22:45:06Z</updated>
        <content type="application/xml">
            <s:organisationSummary>
                <s:name>my house</s:name>
                <s:odsCode>61bv</s:odsCode>
                <s:address>
                    <s:addressLine>House Name</s:addressLine>
                    <s:addressLine>House Road</s:addressLine>
                    <s:addressLine>House Town</s:addressLine>
                    <s:postcode>House Postode</s:postcode>
                </s:address>
            </s:organisationSummary>
        </content>
    </entry>

使用我编写的PHP,它完美地显示了标题,但我对如何显示s:organisationSummary详细信息感到茫然。我希望他们能够单独回显s:name和每个s:addressLine标签。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

冒号前的部分称为名称空间前缀。访问命名空间中元素的一种方法是使用xpath()方法,例如:

foreach($xml->entry as $x) {
    echo $x->xpath("content/s:organisationSummary/s:name")[0]."<br>";
}

相关:Parse XML with Namespace using SimpleXML