Php WSDL文件上DOMDocument中的XPath
我在对XPath进行查询时遇到一些问题。我尝试加载WSDL文件,并使用XPath获取一些节点Php WSDL文件上DOMDocument中的XPath,php,xpath,wsdl,domdocument,Php,Xpath,Wsdl,Domdocument,我在对XPath进行查询时遇到一些问题。我尝试加载WSDL文件,并使用XPath获取一些节点 $DOMDocument = new DOMDocument(); $DOMDocument->loadXML($wsdl); $DOMXpath = new DOMXPath($DOMDocument); $elements = $DOMXpath->query('//definitions//binding'); var_dump($elements); 结果是: class DOMN
$DOMDocument = new DOMDocument();
$DOMDocument->loadXML($wsdl);
$DOMXpath = new DOMXPath($DOMDocument);
$elements = $DOMXpath->query('//definitions//binding');
var_dump($elements);
结果是:
class DOMNodeList#15 (1) {
public $length =>
int(0)
}
以下是WSDL文件:
如何进行正确的XPath查询以遍历节点。您的XML具有默认名称空间(
xmlns=”http://schemas.xmlsoap.org/wsdl/“
)。在这种情况下,您需要注册一个指向该默认命名空间URI的前缀,然后在XPath查询中使用该前缀:
.......
$DOMXpath->registerNamespace('d', "http://schemas.xmlsoap.org/wsdl/");
$elements = $DOMXpath->query('//d:definitions//d:binding');
.......