【问题标题】:SimpleXml not gives proper output [closed]SimpleXml 没有给出正确的输出[关闭]
【发布时间】:2012-09-26 09:48:53
【问题描述】:

我使用 Soap 进行 Web 服务调用,使用 PHP 进行整个操作。当我发送请求时,我得到的响应为“341025COMPLETE”。但是当我为 Source 选择它时,它会打印它后面的 xml。

XMl 是这样的:

"<testscreening xmlns="https://www.test.com/xml/services/PSI">
<response>
<reportID>341025</reportID>
<backgroundreport></backgroundreport>
<status>COMPLETE</status>
</response>
</testscreening>"

如果我想要将其输出存储到数据库中,我该如何实现? 注意:这里提到的 xmlns 是根据隐私更改的。

【问题讨论】:

  • "此处提到的 xmlns 是根据隐私进行更改的" 好主意,但请使用 example.com 或 example.org,因为这些域仅用于此目的。
  • SOAP != SimpleXML。您正在谈论使用 SOAP 加载文档,但没有告诉我们 SimpleXML 涉及的地方。您的问题/疑问是什么?

标签: php xml soap xml-parsing simplexml


【解决方案1】:

使用DOMDocument:

$dom = new DOMDocument;
$dom->loadXML($xml);

$el = $dom->getElementsByTagName('*');

foreach($el as $one){
    if($one->nodeName == 'reportID'){
        $reportId = $one->nodeValue;
    }
    if($one->nodeName == 'status'){
        $status = $one->nodeValue;
    }
}

echo $reportId.' - '.$status;
// 341025 - COMPLETE

【讨论】:

  • 也可以使用DOMDocument::load() 直接从某个文件加载 XML 内容,例如SOAP 响应。
猜你喜欢
  • 2013-05-11
  • 1970-01-01
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 1970-01-01
  • 2021-01-24
相关资源
最近更新 更多