2 回答
TA贡献1880条经验 获得超4个赞
有几种方法可以input直接使用xpath. 您可以local-name()按目前的方式使用:
$xpath = "//*[local-name()='operation'][@name='$method']/*[local-name()='input']";
或直接在中指定命名空间xpath:
$xpath = "//wsdl:operation[@name='$method']/wsdl:input";
获得所需元素后,您可以查看其命名空间属性Action:
$result = $xmlWSDL->xpath($xpath)[0];
$namespaces = $result->getNameSpaces();
foreach ($namespaces as $ns) {
if (isset($result->attributes($ns)['Action'])) $url = (string)$result->attributes($ns)['Action'];
}
echo $url;
输出:
http://www.cnj.jus.br/servico-intercomunicacao-2.2.2/consultarProcesso
TA贡献1878条经验 获得超4个赞
您可以使用 和 的命名空间参数检索此SimpleElement::children信息SimpleElement::attributes:
// Retrieve the `wsdl:` namespaced children of the operation
[$input, $output] = $result[0]->children('wsdl', true);
// Retrieve the `wsaw:`-namespaced attributes of the input element,
// then grab the one named Action
$actionAttribute = $input->attributes('wsaw', true)->Action;
// Convert its value into a string
$actionUrl = (string)$actionAttribute;
(显然,出于本答案的目的,这被过度评论了。)
- 2 回答
- 0 关注
- 170 浏览
添加回答
举报