getElementsByTagName() Äquivalent für TextNodes
Frage:
Gibt es eine ähnliche Methode wie getElementsByTagName(), das eine Sammlung aller textNodes in a abruft document?
Diskussion:
getElementsByTagName() kann Elemente effizient sammeln, erstreckt sich jedoch nicht auf textNodes. Während das Durchqueren des DOM eine praktikable Option ist, untersucht diese Frage die Möglichkeit einer nativen browserbasierten Lösung.
Antwort:
Es gibt derzeit kein direktes Äquivalent zu getElementsByTagName () für textNodes. Es gibt jedoch mehrere alternative Methoden:
Leistungstests:
Leistungstests zeigen, dass TreeWalker eine ebenso gute, wenn nicht sogar bessere Leistung erbringt als getElementsByTagName( ). Custom Iterative Traversal zeigt ebenfalls eine gute Leistung. Während XPath und querySelectorAll zufriedenstellende Ergebnisse liefern, hinkt Recursive Traversal aufgrund seiner tieferen Rekursion hinterher.
Zusätzliche Erkenntnisse:
Auch wenn eine native Methode zum Sammeln von Textknoten existierte, Sie müssten immer noch den eigentlichen Textinhalt jedes Knotens durchlaufen und daraus extrahieren. Daher liegt der Leistungsengpass nicht nur in der Iteration durch Textknoten, sondern auch in der Untersuchung von Nicht-Textknoten, um ihren Typ zu bestimmen.
Das obige ist der detaillierte Inhalt vonGibt es ein getElementsByTagName()-Äquivalent zum Abrufen aller TextNodes in einem Dokument?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!