我想解析google地理編碼API響應,但結果的結構並不總是相同的。例如,我需要知道郵政編碼,但有時位於Locality/DependentLocality/PostalCode/PostalCodeNumber
節點,有時位於Locality/PostalCode/PostalCodeNumber
節點。我不知道這背後的邏輯,只是想知道節點的價值,不管它在哪裏。我可以使用XPath來完成嗎?如果是這樣,怎麼樣?用xpath查找節點
UPDATE
試圖與//PostalCodeNumber
但它返回一個空數組。的代碼片段如下:
$xml = new \SimpleXMLElement($response);
var_dump($xml->xpath('//PostalCodeNumber'));
的$response
是http://maps.google.com/maps/geo?q=1055+Budapest&output=xml 內容(複製粘貼,而不是點擊因爲一些性格上的問題,它的網址...)
它返回一個空數組。 :( – haxpanel
我懷疑命名空間問題...嘗試添加$ xpath-> registerNamespace('ns',「urn:oasis:names:tc:ciq:xsdschema:xAL:2.0」); – Gus
無效$ dom = new \ DOMDocument; $ dom-> loadXML($ xml-> AddressDetails-> asXML()); $ xpath = new \ DomXpath($ dom); $ xpath-> registerNamespace('ns',「urn: Oasis:names:tc:ciq:xsdschema:xAL:2.0「); var_dump($ xpath-> query('// PostalCodeNumber'));' – haxpanel