XPath común


1. sintaxis xpath

Solo echa un vistazo al tutorial para principiantes.

1. Gramática básica

XPath utiliza expresiones de ruta para seleccionar nodos en documentos XML. Los nodos se seleccionan siguiendo una ruta o paso. Las expresiones de ruta más útiles se enumeran a continuación:

expresión describir
nombre del nodo Seleccione todos los nodos secundarios de este nodo.
/ Seleccione desde el nodo raíz (tome nodos secundarios).
// Selecciona nodos en el documento a partir del nodo actual que coincide con la selección, independientemente de su posición (tomando nodos descendientes).
. Seleccione el nodo actual.
Seleccione el nodo principal del nodo actual.
@ Seleccionar atributos.

2. Gramática básica - Predicados

Los predicados se utilizan para encontrar un nodo o nodos específicos que contengan un valor específico.

Los predicados están encerrados entre corchetes.

En la siguiente tabla, enumeramos algunas expresiones de ruta con predicados y los resultados de las expresiones:

expresión de ruta resultado
/librería/libro[1] Selecciona el primer elemento del libro que es hijo de la librería.
/librería/libro[último()] Selecciona el último elemento de libro que es hijo del elemento de librería.
/librería/libro[último()-1] Selecciona el penúltimo elemento del libro que es hijo del elemento de la librería.
//título[@lang] Selecciona todos los elementos del título que tienen un atributo llamado idioma.
//título[@lang='eng'] Selecciona todos los elementos del título que tienen un atributo lang con un valor de eng.



☺ 2. Escenarios comunes del proyecto xpath

1. Selección de múltiples etiquetas idénticas

(1) método contiene (): una etiqueta que contiene un determinado contenido

--举例1:
xpath("//div[@class='row']/div[contains(@class, 'search-results')]")
xpath("//p//strong[contains(text(), "Release date")]")
  • Ejemplo 2:

(2) Obtenga el subnodo a través del número de serie del nodo

--举例1:
xpath("//div[@class='result'][1]/h1/a/text()")
  • Ejemplo 2:

(3) siguiente hermano:: Obtener la etiqueta del mismo nivel

--举例1:
xpath("//p//strong[contains(text(), "Release date")]//following-sibling::i[1]")
  • Ejemplo 2:

El proyecto de nuestra empresa introduce la versión de dependencia xpath. Su análisis de xpath es un poco diferente de lo que ve Google Chrome. Por ejemplo, siguiente-hermano::a, Google obtendrá todas las etiquetas a, pero en el proyecto, solo tomará la primera. una etiqueta.


2. Métodos y predicados de uso común en proyectos.

text() obtiene el contenido del texto

@Atributos como @class, @href @title

el siguiente hermano obtiene elementos hermanos

El método contiene selecciona después de juzgar varios elementos idénticos.

node() obtiene todos los nodos

El método de conteo calcula la cantidad.

El método de posición determina la posición.

  • Ejemplo:
xpath2("//p//strong[contains(text(), "Genre:")]//following-sibling::a[position()<(count(//p//strong[contains(text(), "Genre:")]//following-sibling::node())-count(//p//strong[contains(text(), "Genre:")]//following-sibling::br[1]//following-sibling::node()))*0.5]")

Si se informa un error al usar xpath, use xpath2. La dependencia de xpath2 se introduce en el proyecto de la empresa.


Tercero, funciones relacionadas con cadenas xpath

¡Es similar a algunas funciones de String de Java!

Ejemplo de método concat de cadena de empalme

xpath("//div[@class='row']/div[@class='search-results']/div[@class='result'][1]/h1/a/text()")


xpath2("concat('本周Steam值得关注的游戏',//div[@class='row']/div[contains(@class, 'search-results')]/div[@class='result'][1]/h1/a/text())")

Determinar si hay un método que contiene una cadena



3. Herramientas de uso común para escribir xpath: Google Chrome

Ejemplo:




Si este artículo te resulta útil, recuerda darle un me gusta a Yile, ¡gracias!

Supongo que te gusta

Origin blog.csdn.net/weixin_45630258/article/details/129257347
Recomendado
Clasificación