2

PHPでファイルから生のXMLをxpathで抽出しようとしていますが、結果を配列に解析するつもりはありません。元のドキュメントからサブセットを返そうとしているだけです。

私の元のドキュメントは次のように構成されています。

<?xml version="1.0" encoding="utf-8"?>
<root>
    <row id="1">
        <child1>value1</child1>
        <child2>value1</child2>
        <child3>value1</child3>
    </row>
    <row id="2">
        <child1>value1</child1>
        <child2>value1</child2>
        <child3>value1</child3>
    </row>
</root>

私がやりたいことは、/root/row[@id="1"] に xpath して、これを返すことだけです:

<?xml version="1.0" encoding="utf-8"?>
<row id="1">
    <child1>value1</child1>
    <child2>value1</child2>
    <child3>value1</child3>
</row>

これについて最善の方法は何ですか?

4

2 に答える 2

2
$doc = new DOMDocument();
$doc->loadXML('<root>...</root>'); // or $doc->load($file) if loading from file
$xpath = new DOMXpath($doc);
$elements = $xpath->query("/root/row[@id='1']");
if ($elements) {
    foreach ($elements as $item) {
        echo $doc->saveXML($item), "\n";
    }
 }

@fab さんのコメントに感謝します。私はそれを忘れていました。

于 2013-03-11T16:13:15.040 に答える
0

このようなヘッダーを入れてみてください。

header('Content-Type: application/xml; charset=UTF-8');
于 2013-03-11T16:41:20.343 に答える