2010-11-30 18 views
5

En XSL 1.0, descendiente o auto seleccionará TODOS los descendientes y el nodo actual. ¿Qué sucede si desea seleccionar solo los elementos secundarios y el nodo actual (es decir, hijo o auto)?¿Cómo se selecciona child-or-self (niños + self)

¿Es eso posible con XPATH?

+0

Buena pregunta, +1. Vea mi respuesta como la única respuesta correcta hasta ahora. Tenga en cuenta que la respuesta seleccionada actualmente es incorrecta. :) –

Respuesta

9

En XPath 1.0 o posterior utilizar:

SomeExpression | SomeExpresion/node() 

En XPath 2.0 o posterior utilizan:

SomeExpression/(self::node()|node()) 

una respuesta incorrecta habría:

SomeExpression | SomeExpresion/* 

porque selecciona solo los elementos secundarios de SomeExpression que son elementos, mientras que SomeExpression también pueden tener otros elementos secundarios, como nodos de texto, nodos de comentario, nodos de instrucciones de procesamiento.

también es incorrecto:

./SomeExpression | ./*/SomeExpression 

Esto no selecciona los elementos secundarios inmediatos de ./SomeExpression y no seleccionar a los niños immidiate de ./*/SomeExpression.

+0

+1 Respuesta correcta. –

Cuestiones relacionadas