如何在 for 循环内对当前 SimpleXMLElement 对象运行 Xpath 查询。例如
<?php
$xml = simplexml_load_string('<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore> ');
foreach ($xml as $value) {
$result = $value->xpath('//title');
var_dump($result);
break;
}
?>
array
0 =>
object(SimpleXMLElement)[189]
public '@attributes' =>
array
'lang' => string 'eng' (length=3)
string 'Harry Potter' (length=12)
1 =>
object(SimpleXMLElement)[188]
public '@attributes' =>
array
'lang' => string 'eng' (length=3)
string 'Learning XML' (length=12)
这会输出两个书籍元素的结果,而我的意图是只显示第一个。我试图让查询只在 for 循环中的 $value 对象上运行,因为我可能想在每本书上运行不同的查询(所以它必须在一个循环中!)不是在每一本书上,这是它目前的样子正在做。