Ich muss die Eltern eines bestimmten Knotens in PHP bekommen. Ich benutze DomDocument und Xpath. Mein xml ist dies:Holen Xpath Parent-Knoten mit DomDocument PHP?
<ProdCategories>
<ProdCategory>
<Id>138</Id>
<Name>Parent Category</Name>
<SubCategories>
<ProdCategory>
<Id>141</Id>
<Name>Category child</Name>
</ProdCategory>
</SubCategories>
</ProdCategory>
</ProdCategories>
Der PHP-Code:
$dom = new DOMDocument();
$dom->load("ProdCategories_small.xml");
$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//ProdCategory/Id[.="141"]/parent::*')->item(0);
print_r($nodes);
Der Druck ist:
DOMElement Object (
[tagName] => ProdCategory [schemaTypeInfo] => [nodeName] => ProdCategory [nodeValue] => 141 Category child [nodeType] => 1 [parentNode] => (object value omitted) [childNodes] => (object value omitted) [firstChild] => (object value omitted) [lastChild] => (object value omitted) [previousSibling] => (object value omitted)
Die [parentNode]
ist (object value omitted)
, warum? Ich würde
<Id>138</Id>
<Name>Parent Category</Name>`
Gibt der letzte in Ihrer Frage angegebene Knoten die gewünschte Ausgabe an? Ihr Xpath-Ausdruck kann als '// ProdCategory [Id [. =" 141 "]]' umgeschrieben werden, funktioniert das? – collapsar
@collapsar danke für Ihre Antwort. Nein, funktioniert nicht. Der letzte Knoten in meiner Frage ist es was ich will. – Eliana
@collapsar - oder sogar '// ProdCategory [Id =" 141 "]' –