gibt es eine Möglichkeit, nur die unmittelbaren Kinder abzurufen, die bei einem Aufruf von DOMElement :: getElementsByTagName gefunden wurden? Zum Beispiel habe ich ein XML-Dokument mit einem Kategorieelement. Dieses Kategorieelement hat Unterkategorienelemente (die die gleiche Struktur haben), wie:
%Vor%Wenn ich ein DOME-Element habe, das die oberste Kategorie repräsentiert,
%Vor%gibt eine Liste mit den Knoten für alle 'id' Elemente zurück, wobei ich nur die von der obersten Ebene möchte. Gibt es eine Möglichkeit, dies außerhalb von XPath zu tun?
Ich benutze kein PHP, aber wenn PHP das DOM API tatsächlich als hat den W3C angegeben , es muss eine childNodes-Eigenschaft für jedes Node-Objekt vorhanden sein. Sie sollten in der Lage sein, über alle direkten Kinder zu iterieren und ihren Tag-Namen zu testen, um zu sehen, ob sie der gesuchte sind. Abhängig davon, wie Ihr Baum aussieht, ist dies möglicherweise langsamer als das Abrufen aller Elemente nach Tag-Namen und das Testen der Baumposition, oder er kann erheblich schneller sein.
Sie können Elemente mit === vergleichen. Dies vermeidet die Instanziierung eines Xpath-Objekts.
%Vor%Abhängig von der Größe Ihres XML-Dokuments können Sie feststellen, dass Xpath besser funktioniert. In puncto Eleganz ist diese Lösung jedoch sauberer.