2012-05-01 13 views
7

Tengo dos expresiones XPath ...¿Cómo combino estas expresiones xpath?

//*[@id='gutter']/p[strong[text()='Date:']]/text() 
//*[@id='gutter']/p[strong[text()='Time:']]/text() 

¿Cómo se escribe una sola expresión XPath que combina los dos anteriores y volvería de los mismos elementos que se ejecuta cada una de las expresiones anteriores de forma individual?

+0

¿Quiere decir "devolver el mismo nodo de texto"? –

Respuesta

4

¿Qué tal:

//*[@id='gutter']/p[strong[text()='Date:' or text()='Time:']]/text() 

que es más o menos explica por sí mismo.

14

En general esta expresión Xpath:

expr1 | expr2 

selecciona el unión de todos los nodos seleccionados por expr1 y todos los nodos seleccionados por expr2.

El carácter | denota el operador de unión de XPath operador.

Puede usar el operador de unión en cualquier caso cuando desee que se devuelva la unión de los nodos seleccionados por varias expresiones XPath.

En este caso concreto:

//*[@id='gutter']/p[strong[text()='Date:']]/text() 
| 
//*[@id='gutter']/p[strong[text()='Time:']]/text() 

Mientras que esta expresión puede ser optimizado, tiene la ventaja de que el operador de unión "trabaja" en todos estos casos, se puede expresar casi mecánicamente, ahorra tiempo y elimina la posibilidad de introducir errores mediante una refactorización más complicada.

Cuestiones relacionadas