Wie lautet der XPath-Ausdruck alle Elemente, Textknoten und Kommentarknoten in der Reihenfolge, in der sie im Dokument erscheinen?XPath-Ausdruck zur Auswahl von * allen * Elementen, Textknoten und Kommentarknoten in Quellreihenfolge
Die folgende wählt effektiv alle Elemente, aber nicht Textknoten und Kommentarknoten:
var result = document.evaluate('//*', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null),
index = -1;
while (++index < result.snapshotLength) {
console.log(result.snapshotItem(index));
}
Ist es möglich, so etwas wie die folgenden zu tun? (Hinweis: Dies ist ein nicht-funktionaler Pseudo-Code.)
document.evaluate('//* and text() and comment()');
Woah! Kurz und bündig. Das funktioniert großartig; es wählt auch das Wurzelelement aus - und für HTML-Dokumente sogar den DOCTYPE (den ich nicht kannte, war möglich). –
TIL dass 'document.evaluate ('// node()', Dokument, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null) .singleNodeValue === document.doctype'. –
Wenn es einen DOCTYPE-Knoten auswählt, hat jemand die XPath-Spezifikation imaginär interpretiert; Es gibt keinen solchen Knoten im XPath-Datenmodell. –