嘗試從<af:location>value</af:location>
中獲取值。首先;是的,我已經搜索了很多的答案如何做。在這裏閱讀了很多關於Stackoverflow的問題並嘗試了很多代碼。但只是無法讓它工作。無法取出XML的名稱空間屬性
我不能顯示所有的嘗試我都做了,因爲我不記得所有的事情我試過了。
這裏是我使用的代碼的剝離版本:
$xml_dump = Feed::curl_file_get_contents($url);
libxml_use_internal_errors(true);
if ($xml = simplexml_load_string($xml_dump))
{
}
我已經例如嘗試:
- Namespace參數
'af'
在 - >simplexml_load_string($xml_dump, null, 0, 'af', true)
$xml->getNamespaces(true)
$sxe = new SimpleXMLElement($xml_dump); $namespaces = $sxe->getNamespaces(true);
但他們都沒有工作。
的$xml_dump
包含此:
<?xml version="1.0"?>
<rss version="2.0" xmlns:af="http://www.example.se/rss">
<channel>
<title>RSS Title - Example.se</title>
<link>http://www.example.se</link>
<description>A description of the site</description>
<pubDate>Wed, 24 Feb 2016 12:20:03 +0100</pubDate>
<item>
<title>The title</title>
<link>http://www.example.se/2.1799db44et3a9800024.html?id=233068</link>
<description>A lot of text. A lot of text. A lot of text.</description>
<guid isPermaLink="false">example.se:item:233068</guid>
<pubDate>Wed, 24 Feb 2016 14:55:34 +0100</pubDate>
<af:profession>16/5311/5716</af:profession>
<af:location>1/160</af:location>
</item>
</channel>
</rss>
解決了!
答案是:
$loc = $item->xpath('af:location');
echo $loc[0];
您應該始終註冊您自己的Xpath前綴。像這樣:http://stackoverflow.com/a/24101080/2265374 – ThW