tutorial node make how expressions attribute and xml parsing xpath html-parsing

xml - node - ¿Cómo obtener el valor de nodo/innerHTML con XPath?



xpath node (4)

Con xpath, lo que obtendrá será lo último en la ruta que no es una condición. ¿Qué significa eso? Bueno, las condiciones son las cosas entre [] (pero ya lo sabías) y las tuyas se muestran como pathElement [ que tiene un atributo ''clase'' con valor ''my class'' ] . El pathElement viene directamente antes del [ .

Todo lo que está fuera de [] es el camino, así que en //a/b/c[@blah=''bleh'']/d a , b , c y d son todos los elementos del camino, bla es un atributo y bleh un valor literal. Si este camino coincide, te devolverá una d , la última cosa sin condición.

Su ruta particular devuelve una (serie de) div , siendo lo último en el camino de su xpath. Por lo tanto, este valor de retorno incluye los nodos de nivel superior, div en su caso y debajo de ellos (sus) todos sus (sus) hijos. Los nodos pueden ser elementos o texto (o comentarios, instrucciones de procesamiento, ...).

Debajo de un nodo puede haber múltiples nodos de texto, por lo tanto, la matriz pOcHa se refiere. x/text() devuelve todo el texto que es un elemento secundario directo de x, x/node() devuelve todos los nodos secundarios, incluido el texto.

Espero que esto ayude.

Tengo un XPath para seleccionar una clase que quiero: //div[@class=''myclass''] . Pero me devuelve todo el div (con <div class=''myclass''> también, pero me gustaría devolver solo el contenido de esta etiqueta sin la etiqueta en sí. ¿Cómo puedo hacerlo?


Puedes probar

// div [@ class = ''myclass''] / child :: *

child :: * selecciona todos los elementos secundarios del nodo de contexto ver detalles


Nueva respuesta a una pregunta antigua y frecuente:

Para este XML

<div class="myclass">content</div>

puede usar XPath para seleccionar solo el content de una de estas dos formas:

  1. Selección de nodo de texto

    Este XPath,

    //div[@class=''myclass'']/text()

    seleccionará los elementos del nodo de texto del elemento div orientado, content , según lo solicitado.

  2. Valor de cadena de un elemento

    Este XPath,

    string(//div[@class=''myclass''])

    devolverá string-value de la string-value del elemento div designado, content , de nuevo según lo solicitado.

    Más información: Aquí hay una note explica los valores de cadena de los elementos:

    El string-value de string-value de un nodo de elemento es la concatenación de los string-value s de todos los descendants de nodo de texto del nodo de elemento en orden de documento.


node() = innerXml text() = innerText

ambos son matrices, por lo que text () [1] es un primer nodo de texto para niños ...