0

情報を XML として送信する PDF フォームがあります。フォーマットなどをテストするために、PHP ファイルの xml データをエコーアウトしたい。

$xml    = file_get_contents('php://input');
$reader = new XMLReader();
$reader->XML($xml);

while ($reader->read()) {
    foreach ($reader as $name => $value) {
        echo "$name: $value\n";
    }
}
// this line will echo out the values of the xml one after the
// other without spaces. I am looking for name: value.
echo "<br>$xml<br>";
4

1 に答える 1

0

あなたの質問で私が見つけることができる主な問題は、あなたがXMLReaderここを利用していることです。そのライブラリを使用することは特に間違っているわけではありません - XML を解析することを目的としています - しかし、解析のために提供するインターフェースがあなたの邪魔になります。

たとえば、次のコード行は、名前と値のペアに対するTraversableXMLReader $readerを提供していないため、機能しません。

foreach ($reader as $name => $value) {

したがって、 foreach 内で使用しても、仕事を成し遂げるのにあまり役立ちません。おそらく代わりに使用したいのはSimpleXMLElement. このような種類のトラバーサルと値へのより直接的なアクセスが可能になるため、XML ドキュメントのトラバーサルにより適しています。基本的な使用例を確認してください。

$xml = simplexml_load_file('php://input');
$xml->asXML('php://output'); // review submitted (+ loaded + parsed) XML

foreach ($xml as $name => $value) {
     echo "$name: $value\n";
}

同様に参照してください:

于 2013-06-24T21:47:32.940 に答える