Если вы хотите обработать только один элемент, вам не обязательно нужен цикл, но он также не повредит.
Согласно вашему выводу file
и folder
являются дочерними элементами возвращаемого элементадля вашего запроса xpath.Вы можете получить к ним доступ через $parentElement->childElement
.Если бы они были атрибутами, вы бы использовали $element['attributeName']
$foo = new SimpleXMLElement(getData());
foreach( $foo->xpath('row[@id="r2"]') as $row ) {
echo $row->file, " | ", $row->folder, "\n";
}
echo "-----\n";
// same thing if you have more than one element in your result set
foreach( $foo->xpath('row[@id="r2" or @id="r3"]') as $row ) {
echo $row->file, " | ", $row->folder, "\n";
}
function getData() {
return '<foo>
<row id="r1">
<file>value 1.1</file>
<folder>value 1.2</folder>
</row>
<row id="r2">
<file>value 2.1</file>
<folder>value 2.2</folder>
</row>
<row id="r3">
<file>value 3.1</file>
<folder>value 3.2</folder>
</row>
</foo>';
}
print
value 2.1 | value 2.2
-----
value 2.1 | value 2.2
value 3.1 | value 3.2