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>";

私はSOAPアプリケーションを使用$xmlget = simplexml_load_string($input_xml);して送信していました。$xmlget

$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 に答える