我正在努力閱讀使用PHP的XML文件。從XML獲取數據
我想使用的XML是在這裏: http://www.gdacs.org/xml/rss.xml
現在,我很感興趣的數據是「項目」節點。
我創建了下面的函數,它獲取的數據:
$rawData = simplexml_load_string($response_xml_data);
foreach($rawData->channel->item as $value) {
$title = $value->title;
.... 能正常工作。
與節點「GDCS:XXXX」稍微更多的問題,但我用下面的代碼,這也可以工作:
$subject = $value->children('dc', true)->subject;
現在我的問題是與「資源」節點,
基本上它的精簡版是這樣的:
<channel>
<item>
<gdacs:resources>
<gdacs:resource id="xx" version="0" source="xx" url="xx" type="xx">
<gdacs:title>xxx</gdacs:title>
</gdacs:resource>
<gdacs:resource id="xx" version="0" source="xx" url="xx" type="xx">
<gdacs:title>xxx</gdacs:title>
</gdacs:resource>
<gdacs:resource id="xx" version="0" source="xx" url="xx" type="xx">
<gdacs:title>xxx</gdacs:title>
</gdacs:resource>
</gdacs:resources>
</item>
</channel>
在這種情況下,我將如何獲得資源?我始終能夠獲得第一個資源,只有它的標題。我想要做的是獲得所有資源項目,它們具有特定值的「類型」並獲取其URL。
這個工作,但問題是,我得到的所有網址,所有的項目,我需要到特定的URL分配給特定項目,如果你看看在整個文件中,XML包含許多「項目」節點,我需要爲每個「項目」獲取類型爲「image」的資源的URL。您建議的解決方案會在整個XML文件中生成所有xx類型資源的數組,而不管它們屬於哪個項目 – Jachym
爲每個項目單獨創建一個SimpleXMLElement,然後在循環中爲每個項目運行xpath。您可以使用2個xpath語句 - >第一個獲取所有項目,下一個使用上面的代碼循環遍歷結果 – DannyZB