こんにちは、Web サービスに xml を送信しようとしていますが、送信する前に xml を消去する必要があります。これまで私はさまざまな方法を試してきましたが、今はしばらく立ち往生しています。
フォームからデータを取得し、php ファイルに投稿して処理します。ユーザーが長さ/幅/高さにデータを入力しない場合は、xml を消去して空の要素を削除し、xml 要求を送信するサーバーで検証に合格できるようにします。
以下は、私の投稿からキャプチャされたデータのスニペットであり、それに応じて xml ファイルを作成しますが、ディメンションが省略された場合はどうなりますか? 空の他の要素も削除できますか?
$xmlRequest = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<mailing-scenario xmlns="http://www.mysite.com/ws/ship/rate-v2">
<customer-number>{$mailedBy}</customer-number>
<parcel-characteristics>
<weight>{$weight}</weight>
<dimensions>
<length>{$length}</length>
<width>{$width}</width>
<height>{$height}</height>
</dimensions>
</parcel-characteristics>
<origin-postal-code>{$originPostalCode}</origin-postal-code>
<destination>
<domestic>
<postal-code>{$postalCode}</postal-code>
</domestic>
</destination>
</mailing-scenario>
XML;
$xmlRequest = phpquery::newDocument();
$xp = new DOMXPath($xmlRequest->getDOMDocument());
foreach($xp->query('//*[not(node()) or normalize-space() = ""]') as $node) {
$node->parentNode->removeChild($node);
}