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オブジェクトでのみクエリを実行しようとしています(したがって、ループ内にある必要があります)。現在のすべての本ではありません。やっています。