FYI, punto de terminología: una el nodo de texto no es un elemento.
De todos modos, la forma más sucinta para seleccionar el padre del nodo actual es ..
Por lo tanto, el nombre del elemento padre del nodo actual (que podría ser un nodo de texto) se name(..)
sustituyendo esto en su expresión XPath:
//text()[name(..)='p']
Pero de una manera menos rotonda a escribir eso sería
//p/text()
(suponiendo que los elementos p
en el documento no tengan prefijo de espacio de nombres). De cualquier manera, está seleccionando todos los nodos de texto que son secundarios de elementos llamados p
.
¿Es esta una mejor práctica que el nombre (// text()/..)? – emschorsch
No, '..' es lo mismo que' parent :: '. Usualmente uso '..', pero esta es una respuesta antigua y quién sabe lo que estaba pensando ese día ;-) –