我必须将格式化为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"?>
仍然会出现相同的错误。
答案 0 :(得分:1)
我不知道您的服务描述(WSDL),但我想它应该是:
$requestParams = array(
'XMLDocNumber' => 'Test_Doc',
'InboundXML' => $input_xml,
'sStatus' =>''
);
传递simple_xml_element对我来说毫无意义。
答案 1 :(得分:1)
simplexml_load_string()
加载XML字符串并返回一个对象,但您应该发送实际的字符串。
将您的代码更改为:
$requestParams = array(
'XMLDocNumber' => 'Test_Doc',
'InboundXML' => $input_xml,
'sStatus' =>''
);