¿Cómo debería escribirse XPATH?
Nodename selecciona todos los nodos secundarios de este nodo.
/Seleccionar desde el nodo raíz.
//Seleccione los nodos en el documento que coincidan con la selección del nodo actual, independientemente de su posición.
. Seleccione el nodo actual.
..Seleccione el nodo padre del nodo actual.
@Selecciona un atributo.
Expresión de enrutamiento
Resultado
Librería selecciona todos los nodos secundarios del elemento librería.
/bookstore selecciona el elemento raíz librería. Nota: Si la ruta comienza con una barra diagonal (/), siempre representa una ruta absoluta a un elemento.
Librería/Libros selecciona todos los elementos del libro que son hijos del elemento Librería.
//libro selecciona todos los elementos secundarios del libro independientemente de su posición en el documento.
librería//libros selecciona todos los elementos secundarios del elemento libro, independientemente de dónde se encuentren en la librería.
langed nombrado selecciona todos los atributos llamados idioma.
Por ejemplo
1. Busque el elemento raíz de la página://
2. Encuentre todos los elementos de entrada en la página://entrada
.3. Busque el elemento de entrada secundario directo en el primer elemento de formulario de la página (es decir, el elemento de entrada de nivel inferior que solo contiene el elemento de formulario, representado por una ruta absoluta y representado por un solo símbolo):/ /formulario[1] /entrada.
4. Busque todos los elementos de subentrada en el primer elemento de formulario de la página (siempre que se calcule la entrada en el elemento de formulario, no importa cuántas otras pestañas estén anidadas, estarán representadas por rutas relativas, con doble //No.)://form[1]//input.
5. Busque el primer elemento de formulario en la página: ://form[1]
6. [@ id='loginForm']
7. Busque el elemento de entrada ://input[@name='username'] cuyo atributo de nombre es nombre de usuario en la página.
8. Busque el primer elemento de entrada debajo del elemento de formulario con el id loginForm en la página: ://form[@ id = 'log in form']/input[1].
9. La página de búsqueda tiene un elemento de entrada con un atributo de nombre de continuar y un atributo de tipo de botón://input[@ nombre = 'continuar'][@ tipo = 'botón'].
10. ¿Encontrar todos los elementos con id en la página web? /@id
2. Modificar el contenido buscado por el nodo.
Por ejemplo
Expresión de enrutamiento
Resultado
/bookstore/book[1] selecciona el primer elemento que pertenece al subdirectorio de librería. elemento elemento del libro.
/bookstore/book[last()] selecciona el último elemento de libro que pertenece al elemento secundario de la librería.
/bookstore/book[last()-1] selecciona el penúltimo elemento del libro que pertenece al elemento secundario de la librería.
/bookstore/book[position()] selecciona los dos primeros elementos del libro que son hijos del elemento librería.
//title[@lang] selecciona todos los elementos del título con el atributo denominado lang.
//title[@lang='eng'] selecciona todos los elementos del título que tienen un atributo lang con un valor de eng.
/Librería/Libro[Precio>35.00] Selecciona todos los elementos libro del elemento librería. El valor del elemento precio debe ser mayor que 35,00.
/Librería/Libro [Precio y gt35.00]/título Selecciona todos los elementos de título del elemento libro en el elemento libro. El valor del elemento precio debe ser mayor que 35,00.
3. Seleccione nodos desconocidos
Comodines
Descripción
* coincide con cualquier nodo de elemento.
@ * Coincide con cualquier nodo de atributo.
Node() coincide con cualquier tipo de nodo.
Por ejemplo
Expresión de enrutamiento
Resultado
/bookstore/* selecciona todos los elementos secundarios del elemento librería.
//*Selecciona todos los elementos del documento.
//title[@*] selecciona todos los elementos del título con atributos.
4. Seleccione varias rutas.
Al utilizar el operador | en una expresión de ruta, puede seleccionar varias rutas.
Expresión de enrutamiento
Resultado
//book/title | //book/price selecciona todos los elementos de título y precio del elemento libro.
//title | //price selecciona todos los elementos de título y precio en el documento.
/bookstore/book/title | //price selecciona todos los elementos de título que pertenecen al elemento de libro del elemento de librería y todos los elementos de precio en el documento.
5. Palabras clave
Casos de uso
Da un ejemplo
Texto()libro/autor/text()
cadena()libros/autor/cadena()
datos()libros/autor/datos()
. libro/autor/.
Da un ejemplo
Ejemplo XML
<book><author>tom<em>john</em>cat< /author><pricing><price>20</price><discount>0.8</discount></pricing></book>
Text()
A menudo ves text() al final de una expresión XPath, que simplemente devuelve el contenido de texto del elemento especificado.
El formato xpath rastreado es libro/autor/texto (), y el contenido rastreado es Tom cat, en el que John no pertenece al contenido del nodo directo del autor.
String()
La función string() obtendrá el contenido de texto de todos los nodos del elemento especificado, que se unirá en una cadena.
El formato xpath rastreado es libro/autor/cadena(), y el contenido rastreado se rastrea desde el principio hasta el final del autor de Tom John Cat.
Data()
La mayoría de las veces, la función data() y la función string() se usan comúnmente, y no se recomienda usar la función data() con frecuencia. Según las estadísticas, esta función afectará el rendimiento de XPath.
El formato xpath rastreado es libro/precios/datos(), y el contenido rastreado devuelve 20 y 0,8 por separado. Su tipo no es cadena, sino xs:anyAtomicType, por lo que se pueden utilizar funciones matemáticas para realizar determinadas operaciones.
Al rastrear todos los números, solo puede usar datos(), no texto() o cadena(), porque XPath no admite operaciones matemáticas en cadenas.
Autor: Xiao Xianyu YYY
Fuente: blogs.com/pythonywy/p/11082153.html.
Acerca del autor: No importa lo largo que sea el camino Es decir, sigues caminando paso a paso. No importa lo corto que sea el camino, no puedes llegar a él sin dar pasos.
Esta obra está firmada - uso no comercial - ¿no hay interpretación de la versión internacional 4.0? Para obtener permiso, indique el autor y la fuente.
Categoría:? ¿Los reptiles son buenos escribiendo? Sígueme para recopilar este artículo, Xiao Xianyu YwY
Focus-4
Fans-302+Follow 00 Artículo anterior:? Descriptor\Obtener/Configurar/Eliminar, Inicializar/Crear/Llamar, Metaclase
Siguiente:? ¿Marco de red, composición de Internet, protocolo OSI de siete capas, capa abstracta @? Pescadito salado YYY? ¿Lectura(1584)? Nota (3) Editar colección
Lista de comentarios Piso #1 2019-06-25 13:26? Gracias por su apoyo(0)? ¿Objeción(0)#2F2019-06-25 13:36? Increíble 2 ¿Gracias por tu apoyo (0)? ¿Oponerse(0)# 3.er piso [propietario]? 2019-06-25 14:07?小 Pescado salado YwY@ impresionantes dos asientos
¿Puedes apoyar (0)? Objeción (0) Actualizar comentarios Actualiza la página y vuelve al principio. Los usuarios registrados deben iniciar sesión antes de comentar. Por favor. ¿Acceso? ¿aún? ¿registro? ¿visita? Página de inicio del sitio web. Recomiendo conocerte mejor. Blog Park lanzó una encuesta para ayudar a la comunidad a mejorar.
Código fuente VC++ recomendado con más de 500.000 líneas: control industrial de configuración a gran escala, CAD de simulación de energía, biblioteca de código fuente GIS.
¡Recomendado para descarga abierta! Manual práctico básico para la operación y mantenimiento de OSS
Información personal
El proceso de creación de un programa es esencialmente un proceso de depuración y estandarización: haga clic para ver las fotos de la vida del blogger. 568972484
WeChat:? YwYbetheone
Blog personal:? Blog del Sr. Yang
Sitio web de música personal:? Música del Egeo
Radio:? Domina el rastreador de Python en dos minutos al día.
Pescado salado YwY
Tiempos de jardín:? 1 año y 2 meses
Fans:? 302
Seguir:? 4+Atención
& ltJulio 2020>
Sol
Uno
Dos
Tres
p>Cuatro
Cinco
Seis
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8
Mis etiquetas
Drf framework (15)
Vue-CLI (13)
Comercio electrónico Grabs relacionados (6)
Foro (6)
Marco de gancho Frieda (5)
Tornado (4)
Apéndice (3 )
Java (3)
Operación detallada de Git (3)
Tareas cronometradas y tareas asincrónicas (3)
Más p>
Puntos y clasificaciones
Entero-190814
Ranking-2915
¿Clasificación de ensayos? (572)
Django (61)
Flask (16)
github (9)
Ir (17) p >
cuaderno jupyter (1)
linux (20)
Diario de aprendizaje de Python (116)
Shell (1)
Tebola(2)
vs(1)
Vs diario de autoestudio(7)
Vue(26)
Concurrencia Programación (8)
Jardín de blogs (10)
Construcción de blogs personales (6)
Banco de preguntas con botones forzados (22)
Animales que se arrastran (127)
La interfaz (50)
Base de datos (22)
Subprograma WeChat (11)
Mini programa ( 22)
Excepción (17)
¿Archivo de tesis? (494)
Julio 2020 (8)
Junio 2020 (14)
Mayo 2020 (4)
Abril 2020 (9 )
Marzo 2020 (10)
Febrero 2020 (5)
65438+Octubre 2020 (10)
2019 12 (13 )
2019 165438+octubre (49)
2019 10 (78)
2065438 +septiembre 2009 (76)
2065438+ Agosto 2009 (74)
2065438+Julio 2009 (48)
2065438+2009 Junio 2019 (41)
2065438+Mayo 2009 (48) p>
Abril 2019 (7)
Últimos comentarios
1 Responder: Blog Garden Beautification Little Rocket
Gracias
Peter William
2. Respuesta: Todas las formas de implementar la descarga de archivos en el front-end.
Qué genial. . . . . . . . . . . . . . . . . . . . . . . . . . . .
-Xiaobaotao
3. Acerca de: autenticación jwt y autenticación jwt personalizada en el marco DRF.
@Hola, A Liang ha visto el vídeo. ...
-小 Salty Fish YYY
4. Acerca de: autenticación jwt y autenticación jwt personalizada en el marco DRF.
Mirando el blog de mi hermano, debe ser el hermano del viejo. Este artículo es realmente detallado
Hola, A Liang.
5. Respuesta: Reptiles
@小izailong...
-小 Pescado salado YYY
6.
Jefe, he estado estudiando el método para descifrar el código de verificación extremo durante algún tiempo, pero el control deslizante siempre se desvía, lo solucioné.
-Xiao Zailong
7. Respuesta: arreglo del diario de Python
@十七indexGracias...
-Xiao Xian Fish YYY
8. Respuesta: arreglo del diario de Python
Fuerte
-Seventeen Index
9. configuración
Te he estudiado y te he seguido.
-Seventeen Index
10.re: módulo parsel para el análisis de páginas web del rastreador Python
Mi nombre es Liu Xiaohua. ¿Cuál es la contraseña? ...
-Pequeño pescado salado YYY
Clasificación de lectura
1. Rastreador de Python (tomar imágenes) (16036)
2. .python rastreador (captura de videos) (13072)
3.directorio de aprendizaje de python-crawler (4164)
4.django genera clases de modelo basadas en tablas de bases de datos existentes (3446) p>
5. Disposición del diario de Python (3222)
6. Módulo Parsel para el análisis de páginas web del rastreador de Python (3084)
7.Desplazamiento en asociación JS Scroll (2906)
8. Módulo Panda (clasificación detallada), pd.concat (adición posterior) (2884)
9. Atributos de respuesta y contenido en Scrapy (2799) Extract
10. Instalación de Python3 usando el paquete urllib2 Xiaokeng (1933)
¿Derechos de autor? 2020 Pescadito Salado YYY
El poder viene de. NET Core en Kubernetes