0

我必须将格式为 XML 的字符串作为 XML 文档发送到 Web 服务。转动琴弦的最佳方法是什么

 $input_xml = "
<WEB>
<header>
<WebSiteID>WGI</WebSiteID>
<WebDocNumber>Doc10</WebDocNumber>
<OrderCaptureDateTime>10/07/2013</OrderCaptureDateTime>
</header>
<item>
<ItemNumber>FG-00087</ItemNumber>
<ReplacementItem></ReplacementItem>
<Quantity>2</Quantity>
<UnitPrice>6.31</UnitPrice>
<SalesTaxCode></SalesTaxCode>
<SalesTaxAmt>0</SalesTaxAmt>
</item>
</WEB>";

我正在使用$xmlget = simplexml_load_string($input_xml);并只是发送$xmlget到 SOAP 应用程序。

$requestParams = array(
    'XMLDocNumber' => 'Test_Doc',
    'InboundXML' =>  $xmlget,
    'sStatus' =>''
);

数据的接收者说 XML 不是“正确格式”我不确定问题出自哪一端,但我想我会寻求帮助。

编辑

根据我在下面得到的答案,我现在只是发送 XML 数据字符串。但是现在我从 SOAP 应用程序中收到以下错误

stdClass Object ( [InboundApprovedXMLResult] => [sStatus] => Invalid XML Header Format;

我什至将 XML 标头添加到我的字符串中,所以现在它开始于:<?xml version="1.0" encoding="UTF-8"?>仍然得到相同的错误。

4

2 回答 2

1

我不知道您的服务描述 (WSDL),但我想应该是:

$requestParams = array(
    'XMLDocNumber' => 'Test_Doc',
    'InboundXML' =>  $input_xml,
    'sStatus' =>''
);

传递 simple_xml_element 对我来说毫无意义。

于 2013-11-08T18:50:28.497 回答
1

simplexml_load_string()加载 XML 字符串并返回一个对象,但您应该发送实际的字符串。

将您的代码更改为:

$requestParams = array(
    'XMLDocNumber' => 'Test_Doc',
    'InboundXML' =>  $input_xml,
    'sStatus' =>''
);
于 2013-11-08T18:50:39.017 回答