2010-08-07 10 views
5

esto es para la escuela, si sabe que su XPath y no le importaría decirme si estoy en lo cierto:¿Tengo razón sobre lo que significan estas expresiones XPath?

1. //a[/b]/a

cada 'a' que tiene un padre 'a' en una árbol donde la raíz es 'b'. (La ubicación de la [/b] es irrelevante es decir, es lo anterior equivalente a //a/a[/b]

2. //*[//a]//a[/a][a]

romper hacia abajo de izquierda a derecha:?? //*[//a] significa que todos los elementos que tienen un descendiente 'a', por lo tanto, //*[//a]//a (bastante escuela-excerciso) significa todos los elementos 'a'. y //*[//a]//a[/a] significa todos los elementos 'a' en un árbol donde la raíz es 'a', y finalmente - //*[//a]//a[/a][a] significa todos los elementos 'a' en un árbol donde la raíz es 'a' que tiene un hijo 'a'.

Gracias por cualquier ayuda, parece que no puede obtener una respuesta directa en cualquier lugar.

+2

finalmente una pregunta que realmente muestra que la persona que pregunta ha hecho algún trabajo al respecto. +1 por eso. – Femaref

+0

Usted es mayormente correcto. Con respecto al # 2, '// * [// a]' no selecciona todos los elementos que tienen un descendiente 'a', selecciona todos los elementos si el documento contiene un' a' en cualquier lugar dentro del documento. Para seleccionar todos los elementos con un descendiente 'a' necesita hacer el filtro de predicado relativo al elemento coincidente:' //*[.// a] ' –

+0

bien, entonces ¿es cierto que la posición de cualquier predicado de la forma [// a], [/ a] es irrelevante? ¿Qué tal un plano [a], la posición de ese asunto? Gracias! (El desbordamiento de la pila es un serio fenómeno) – bloodcell

Respuesta

1

¿Qué clase de cuestionario te está interrogando sobre consultas arcane XPath? Guau.

  1. //a[/b]/a
    sí, usted tiene ese derecho. La ubicación de [/b] es irrelevante.

  2. //*[//a]//a[/a][a]
    Técnicamente //*[//a]//a es equivalente a //*//a que significa que todas 'a' elementos que tienen un elemento antecesor. Entonces, si el elemento raíz es 'a', no coincidirá. Aparte de eso, sí, su análisis es correcto.

Por lo que vale, hace unos años implementé un analizador XPath completo desde cero en JavaScript para un proyecto en el que trabajé. ¡Así que realmente espero que mis respuestas sean las correctas!

+0

Gracias (pongo un comentario arriba). Es una clase tonta sobre los motores de búsqueda donde cubren demasiado en un nivel demasiado superficial :) – bloodcell

Cuestiones relacionadas