0

Web サービスのローカル php テスト環境バージョンで SOAP Web サービスから取得した XML をシミュレートするために、実際の Web サービス自体によって提供されるのと同じように、空の名前空間を要素に追加したいと考えています。

しかし、null 文字列の名前空間引数を addChild メソッドに追加すると、追加されません。他の値は名前空間を与えてくれますが、私が言ったように空の名前が欲しいです。

そう

$xml = new SimpleXMLElement('<cdhead/>');
$nako = $xml -> addChild ('nako', '000', '');

私にくれます

<cdhead>
    <nako>000</nako>
</cdhead>

しかし、私はしたいです

<cdhead>
    <nako xmlns="">000</nako>
</cdhead>

どうすればそれを達成できますか?

4

1 に答える 1

1

この問題は、php 5.2 を使用しているためです。これはバグであり、PHP 5.2 シリーズで修正されました。ここでBugreportを表示できます。PHP 5.3 を使用してテストしましたが、あなたの例はそのままで動作します。これはどのような場合でも機能するはずです:

<?php

$xml = new SimpleXMLElement('<cdhead/>');
$nako = $xml -> addChild ('nako', '000');
$nako->addAttribute('xmlns', '');

echo $nako->saveXml();

PHP のバージョンが 5.3 より前の場合、手動で属性を追加します。

更新PHP 5.2.17-dotdeb でもこれを試してみましたが、そのままで動作しました。

  • addAttribute
  • 名前空間として空の文字列を持つ addChild
于 2013-01-18T21:16:12.750 に答える