0
我有一個XML結構,就像我在下面概述的那樣。我正在嘗試使用xPath來查找結構中的特定元素,但未成功。這是我到目前爲止:使用PHP xPath解析複雜的XML文檔
$ resultset [0] ['bibXML'] - 這是一個粘貼正確的東西在這個變量傳遞。 http://pastebin.com/CwtFG5dj
以下是使用print_r()的$ myNode輸出的鏈接。 http://pastebin.com/TwDaxs42
$myNode = new SimpleXMLElement($resultset[0]['bibXML']);
$bnum = $myNode->xpath("record/datafield[@tag='035']/subfield[@code='a']");
<?xml version="1.0" encoding="UTF-8"?>
<collection xmlns="http://www.loc.gov/MARC21/slim">
<record>
<leader>01220nam 2200265 4500</leader>
<controlfield tag="001">ocm00000197</controlfield>
<datafield tag="035" ind1="" ind2="">
<subfield code="a">.b10000021</subfield>
<subfield code="b">a </subfield>
<subfield code="c">-</subfield>
</datafield>
<datafield tag="245" ind1="" ind2="">
<subfield code="a">Some Book Title</subfield>
<subfield code="b">a </subfield>
<subfield code="c">-</subfield>
</datafield>
</record>
</collection>
我已經更新了我的代碼對你的建議,我仍然沒有得到響應。 「新的SimpleXMLElement」是將xml加載到的正確函數嗎? – rtd1123
是的,但你也可以說'simplexml_load_string($ xml_string)'。我發佈了完整的代碼,對我來說工作正常。 –
是的,這是問題所在。你的頂層節點是'collection',而不是'record',所有節點都在'http:// www.loc.gov/MARC21/slim'命名空間中。請編輯您的問題以反映真實情況! –