如何从XML中提取节点数据



我试图从这个XML中提取一个节点(称为identifierValue)

我尝试过的几件事:

$NewXML = new SimpleXMLElement($response);
$ABN = $NewXML->xpath('//ABRPayloadSearchResults/response/searchResultsList/searchResultsRecord/ABN/identifierValue');

$ABN = $NewXML->ABRPayloadSearchResults[0]->response->searchResultsList->searchResultsRecord->ABN->identifierValue;

但没有得到任何结果。我用一个简单的虚拟XML尝试了相同的方法,它起作用了。

知道为什么这是失败的我的XML吗?

我认为您的问题是XPath查询使用的元素名称不在名称空间中,而XML中的元素在名称空间中

如果您使用这里描述的https://www.php.net/manual/en/simplexmlelement.registerxpathnamespace.php函数将前缀(例如"abr")与XML中使用的名称空间URI(例如http://abr.business.gov.au/ABRXMLSearchRPC/literalTypes)关联起来,那么您应该能够使用使用该前缀的XPath表达式进行查询,例如

//abr:ABRPayloadSearchResults/abr:response/abr:searchResultsList/abr:searchResultsRecord/abr:ABN/abr:identifierValue

相关内容

  • 没有找到相关文章

最新更新