¿Cuál es la expresión XPath para seleccionar elementos, nodos de texto y nodos de comentario, en el mismo orden en que aparecen en el documento?Expresión de XPath para seleccionar * todos * elementos, nodos de texto y nodos de comentario en orden de origen
La siguiente selecciona de manera efectiva todos los elementos, pero no los nodos de texto y nodos de comentario:
var result = document.evaluate('//*', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null),
index = -1;
while (++index < result.snapshotLength) {
console.log(result.snapshotItem(index));
}
¿Es posible hacer algo como lo siguiente? (Nota: esto no es funcional pseudo-código.)
document.evaluate('//* and text() and comment()');
Woah! Corto y dulce. Esto funciona genial; también selecciona el elemento raíz, y para los documentos HTML incluso el DOCTYPE (que no sabía que era posible). –
TIL que 'document.evaluate ('// node()', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null) .singleNodeValue === document.doctype'. –
Si selecciona un nodo DOCTYPE, alguien ha interpretado imaginativamente la especificación XPath; no hay tal nodo en el modelo de datos XPath. –