Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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解析XML_Php_Xml - Fatal编程技术网

使用名称空间PHP解析XML

使用名称空间PHP解析XML,php,xml,Php,Xml,我正在尝试解析XML以获取“文本”消息: S:服务器 保存作业报告时出错 但是simplexmlement()和simplexml\u load\u file()只返回空对象。当我删除“S:”时,效果更好,但不好 registerXPathNamespace没有帮助 帮助,谢谢。看起来像是Soap响应。PHP自己的SoapClient对象自动处理该XML,并按照Web服务的函数和类型定义中所述的响应传递对象。下面是一个小的示例: try { $client = new SoapCli

我正在尝试解析XML以获取“文本”消息:


S:服务器
保存作业报告时出错
但是
simplexmlement()
simplexml\u load\u file()
只返回空对象。当我删除“S:”时,效果更好,但不好

registerXPathNamespace
没有帮助


帮助,谢谢。

看起来像是Soap响应。PHP自己的SoapClient对象自动处理该XML,并按照Web服务的函数和类型定义中所述的响应传递对象。下面是一个小的示例:

try {
    $client = new SoapClient($wsdl, $options);
    $response = $client->functionName($params);

    var_dump($response);
    // response would be an object with members as described by the webservice
} catch (SoapFault $e) {
    // prints error message
    echo $e->getMessage();
}
$dom = new DomDocument();
$dom->loadXml($xmlResponse);

foreach ($dom->getElementsByTagNameNS('http://www.testX.com.pl/wsdl/sdis-emm', 'Error') as $element) {
    echo $element->getAttribute('text');
}
因此,为了获得更多的舒适感,您应该在PHP手册中查看SoapClient。SoapClient会自动处理所有XML内容,因此您不会接触到它

如果您仍然希望自己处理XML请求和响应,可以使用PHP自己的DomDocument对象。下面是一个小的示例:

try {
    $client = new SoapClient($wsdl, $options);
    $response = $client->functionName($params);

    var_dump($response);
    // response would be an object with members as described by the webservice
} catch (SoapFault $e) {
    // prints error message
    echo $e->getMessage();
}
$dom = new DomDocument();
$dom->loadXml($xmlResponse);

foreach ($dom->getElementsByTagNameNS('http://www.testX.com.pl/wsdl/sdis-emm', 'Error') as $element) {
    echo $element->getAttribute('text');
}
这是一种更复杂的方法,因为如果发生错误,SoapClient会抛出SoapFault,您可以轻松地捕获它并对其执行任何操作