javascript - XPath-uttryck för att välja *alla* element, textnoder och kommentarnoder i källordning
Vad är XPath-uttrycket för att välja alla element, textnoder och kommentarnoder, i samma ordning som de förekommer i dokumentet?
Följande väljer effektivt alla element, men inte textnoder och kommentarnoder:
var result = document.evaluate('//*', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null),
index = -1;
while (++index < result.snapshotLength) {
console.log(result.snapshotItem(index));
}
Är det möjligt att göra något liknande följande? (Observera: detta är icke-fungerande pseudo-kod.)
document.evaluate('//* and text() and comment()');
Svar #1
//node()
väljer varje nod som är ett barn till något: dvs alla element, textnoder, kommentarer och bearbetningsinstruktioner (men inte attribut, namnspansnoder eller dokumentnoden)
Svar #2
Testat med text- och kommentarnoder i ett XML-dokument. Det kan finnas en mer effektiv metod, men detta returnerar element, text- och kommentarnoder i dokumentordning för mig, med union:
//*|//*/text()|//*/comment()
