This question already has an answer here:
I'm trying to display an image using an xml file and SimpleXML
The XML code is
<icons>
<icon size="tiny" href="/FF02-tiny.jpg" />
<icon size="sidebar" href="/FF02-sidebar.jpg" />
<icon size="full" href="/FF02-full.jpg" />
</icons>
I want to get the href
attribute for the size="full"
line.
I've tried
icons->icon->attributes()->href
but this just gives me the first 'tiny'
size. I know I should be using xpath but I am lost.
Yes, you can select the attribute node with an xpath expression:
$icons->icon
will give you aSimpleXMLElement
object that gives access to allicon
child-elements of the$icons
object.From there you need to select which icon you want to get the attribute for. That works with array-like access and a numeric value for the zero-index child element and a string value for the attribute:
You find that documented in the PHP manual with the SimpleXML basic examples (Example #3 and Example #5).
However this does not work if the position of the element you look for changes. So it's suggested that you use a more specific xpath-expression instead.