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!