javascript - XPath výraz na výber *všetkých* elementov, textových uzlov a komentárov v zdrojovom poradí
Aký je XPath výraz na výber všetkých elementov, textových uzlov a komentárových uzlov, v rovnakom poradí, ako sa objavujú v dokumente?
Nasledujúci výraz efektívne vyberá všetky elementy, ale nie textové uzly a uzly komentárov:
var result = document.evaluate('//*', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null),
index = -1;
while (++index < result.snapshotLength) {
console.log(result.snapshotItem(index));
}
Je možné urobiť niečo podobné ako nasledujúce? (Poznámka: toto je nefunkčný pseudo-kód.)
document.evaluate('//* and text() and comment()');
Odpoveď č. 1
//node()
vyberá každý uzol, ktorý je dieťaťom niečoho: t.j. všetky elementy, textové uzly, komentáre a spracovávacie inštrukcie (ale nie atribúty, uzly menného priestoru ani uzol dokumentu)
Odpoveď č. 2
Testované s uzlami textu a komentára v dokumente XML. Môže existovať efektívnejší prístup, ale toto mi vracia prvky, uzly textu a komentára v poradí dokumentu, pomocou zjednotenia:
//*|//*/text()|//*/comment()
