I am using the XPath in PHP 5 to parse a XML document. The problem I have is writing a foreach
to correctly display the following array:
XML document sample
value 1 value 2
$xmlfile = 'link_to_file.xml';
$xmlRaw = file_get_contents($xmlfile);
$xml = new SimpleXMLElement($xmlRaw);
$install_files = $xml->xpath('//files');
foreach($install_files as $row)
{
echo $row['file'];
}
//var_dump for $row gives the following
array(1) { [0]=> object(SimpleXMLElement)#21 (2) { ["file"]=> string(12) "value 1" ["folder"]=> string(8) "value 2" } }
Ideally I would like to get the value by using $row['file']
or $row['folder']
. Thanks for any help.
If you want to process only one element you don't necessarily need a loop, but it doesn't hurt either.
According to your output
file
andfolder
are child-elements of the element returned for your xpath query. You can access them via$parentElement->childElement
. If they were attributes you'd use$element['attributeName']
prints
If I understand your example correctly,
The items in your array are SimpleXMLElement objects. You can access their properties with the
$object->property
syntax. So try this: