Estoy intentando construir una expresión compleja de xpath que responderá a la siguiente condición.Expresión de Xpath con múltiples predicados
A partir de los datos XML a continuación, devuelve el entidad usuario que:
- Su LoginName es "usuario1"
- Su nombre es "Usuario 1"
Él tiene 2 valores de perfiles diferentes que son "operador" y "admin" (no sé el exa Para ct adelante)
<user> <login>user1</login> <name>User 1</name> <profile> <value>admin</value> <id>2</id> <description>admin users</description> </profile> <profile> <value>operator</value> <id>1</id> <description>Operator</description> </profile> </user> <user> <login>user2</login> <name>User 2</name> <profile> <value>admin</value> <id>4</id> <description>admins users</description> </profile> <profile> <value>poweruser</value> <id>5</id> <description>power users</description> </profile> </user> </root>
Por favor alguien puede suministrar un ejemplo para un caso así?
EDIT: Se ha añadido una entidad perfil complejo
Gracias por su rápida solución. Puedo usar una XPATH como esta, o puede cambiar la lógica: /root/user [login = 'user1'] [name = 'User 1'] [profile [value = 'admin']] [profile [ value = 'operator']] – user41767
Interesante - No sabía que podría tener múltiples bloques de predicados, pero sí, parece que eso también funciona. Genial, ahora también he aprendido algo :-) –
Múltiples predicados solo funcionan como AND, por supuesto, la sintaxis expandida te da O también, pero prefiero los múltiplos para mayor claridad. También podría hacer esto con hachas como anterior-hermano, pero eso sería un poco obtuso para un caso simple como este. – annakata