is there a way to retrieve only the immediate children found by a call to DOMElement::getElementsByTagName? For example, I have an XML document that has a category element. That category element has sub category elements (which have the same structure), like:
<category>
<id>1</id>
<name>Top Level Category Name</name>
<subCategory>
<id>2</id>
<name>Sub Category Name</name>
</subCategory>
...
</category>
If I have a DOMElement representing the top level category,
$topLevelCategoryElement->getElementsByTagName('id');
will return a list with the nodes for all ‘id’ elements, where I want just the one from the top level. Any way to do this outside of using XPath?
I’m afraid not. You’ll have to iterate through the children or use XPath.
Example with XPath and your XML file:
gives
2.