secuencias regulares online expresiones ejemplos consultas altova xml xpath

xml - regulares - XPath para seleccionar Elemento por valor de atributo



xpath value (2)

Tengo siguiente XML.

<?xml version="1.0" encoding="UTF-8"?> <Employees> <Employee id="3"> <age>40</age> <name>Tom</name> <gender>Male</gender> <role>Manager</role> </Employee> <Employee id="4"> <age>25</age> <name>Meghna</name> <gender>Female</gender> <role>Manager</role> </Employee> </Employees>

Quiero seleccionar el elemento Empleado con id = "4".

Estoy usando la expresión XPath debajo que no devuelve nada.

//Employee/[@id=''4'']/text()

Lo revisé en http://chris.photobooks.com/xml/default.htm y dice xpath no válido, no estoy seguro de dónde está el problema.


Debe eliminar el / antes del [ . Predicados (las partes en [ ] ) no deberían tener barras inmediatamente delante de ellos. Además, para seleccionar el elemento Employee en sí mismo, debe dejar el /text() al final o, de lo contrario, solo estaría seleccionando los valores de texto en el espacio en blanco inmediatamente debajo del elemento Employee.

//Employee[@id=''4'']

Editar: como señala Jens en los comentarios, // puede ser muy lento porque busca en todo el documento los nodos coincidentes. Si la estructura de los documentos con los que trabaja va a ser consistente, probablemente sea mejor que utilice una ruta completa, por ejemplo:

/Employees/Employee[@id=''4'']


Intenta hacer esto:

/Employees/Employee[@id=4]/*/text()