我正在寻找xpath并从PHP中的文件中提取原始XML,但我不打算将结果解析为数组。我只是想从原始文档中返回一个子集。
我的原始文档结构如下:
<?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>
我想做的就是能够xpath进入/ root / row [@ id =“1”]并返回:
<?xml version="1.0" encoding="utf-8"?>
<row id="1">
<child1>value1</child1>
<child2>value1</child2>
<child3>value1</child3>
</row>
最好的方法是什么?
答案 0 :(得分: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的评论。我忘记了that。
答案 1 :(得分:0)
尝试放置这样的标题,
header('Content-Type: application/xml; charset=UTF-8');