0

こんにちは、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);
} 
4

1 に答える 1