Saltar al contenido

¿Diferencia entre “//” y “/” en XPath?

Haz todo lo posible por entender el código de forma correcta previamente a utilizarlo a tu trabajo si ttienes algo que aportar puedes compartirlo con nosotros.

Solución:

/ contra // en general

Ambos child (/) y descendant-or-self (//) son ejes en XPath.

  • / es corto para /child::node()/.

    Usar / para seleccionar un nodo hijos inmediatos.

  • // es corto para /descendant-or-self::node()/.

    Usar // para seleccionar un nodo, sus hijos, sus nietos, y así sucesivamente de forma recursiva.


/ contra // con preceding-sibling::*

Su pregunta específica se refiere a la diferencia entre //preceding-sibling::* y /preceding-sibling::*.

Dado que sus datos están fuera del sitio y son complejos, consideremos en su lugar este XML presente y más simple:


  
  
    
    
  

Para este XML,

  1. /r/preceding-sibling::* no selecciona nada porque r no tiene hermanos anteriores.
  2. /r//preceding-sibling::* selecciona los elementos hermanos precedentes de todos los descendientes o propios nodos de r. Es decir, a, b, c y d. (Recordar, /r//preceding-sibling::* es corto para /descendant-or-self::node()/preceding-sibling::*, no/descendant-or-self::*/preceding-sibling::*) Tenga en cuenta que aunque b y d son hermanos predecesores de no elementosson hermanos predecesores de nodos de texto porque el XML anterior tiene espacios en blanco después b y d. Si se eliminaron todos los espacios en blanco, solo a y c sería seleccionado.
  3. /r/descendant::*/preceding-sibling::* selecciona los elementos hermanos precedentes de todos los descendientes elementos de r. Es decir, a y c. Tenga en cuenta que b y d no se seleccionan porque no preceden a los elementos hermanos de ningún descendiente elementos de r — a diferencia del ejemplo anterior, texto los nodos no califican.

Te mostramos las reseñas y valoraciones de los usuarios

Eres capaz de añadir valor a nuestra información cooperando tu veteranía en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *