Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP在DOM上查找(XML)节点_Php_Xml_Dom_Wsdl - Fatal编程技术网

使用PHP在DOM上查找(XML)节点

使用PHP在DOM上查找(XML)节点,php,xml,dom,wsdl,Php,Xml,Dom,Wsdl,我在使用domdocumentphp查找WSDL(XML)文档上的某个节点时遇到问题。当我使用getElementsByTagName时,它总是返回NULL。我将要找到的是xsd:complexType,但当我尝试不同的节点(比如类型)时,它会返回一个对象 这是我的WSDL(XML)文档 我将要找到的是xsd:complexType,或者如果可能的话,如何通过具有唯一值的属性名(verifyingCode或其他)查找,如何通过PHP和DOMDocument实现这一点?除了您对的结束标记不正确

我在使用domdocumentphp查找WSDL(XML)文档上的某个节点时遇到问题。当我使用getElementsByTagName时,它总是返回NULL。我将要找到的是xsd:complexType,但当我尝试不同的节点(比如类型)时,它会返回一个对象

这是我的WSDL(XML)文档



我将要找到的是xsd:complexType,或者如果可能的话,如何通过具有唯一值的属性名(verifyingCode或其他)查找,如何通过PHP和DOMDocument实现这一点?

除了您对
的结束标记不正确(最后一行)之外,我看不出有任何问题

$doc = new DOMDocument();
$doc->loadXML($xml);
$complexTypes = $doc->getElementsByTagName('complexType');
printf('<p>Found %d complexType elements</p>', $complexTypes->length);
foreach ($complexTypes as $complexType) {
    echo $complexType->getAttribute('name'), '<br>';
}
$doc=newDOMDocument();
$doc->loadXML($xml);
$complexTypes=$doc->getElementsByTagName('complexType');
printf(“找到%d个complexType元素,$complexTypes->length”);
foreach($complexTypes作为$complexType){
echo$complexType->getAttribute('name'),“
”; }
演示-

您可能在标记名查询中包含了
xsd
名称空间。如果阅读,您将看到
getElementsByTagName()
指定的参数

要匹配的标记的本地名称(不带命名空间)


我在查询中包含xsd名称空间,这是可行的。谢谢:)
$doc = new DOMDocument();
$doc->loadXML($xml);
$complexTypes = $doc->getElementsByTagName('complexType');
printf('<p>Found %d complexType elements</p>', $complexTypes->length);
foreach ($complexTypes as $complexType) {
    echo $complexType->getAttribute('name'), '<br>';
}