我想解析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