valor tutorial texto secuencias recorrer obtener curso con buscar atributo altova xpath

tutorial - Consulta XPATH para filtrar valores en ciertos atributos solamente



xpath obtener el valor de un atributo (1)

Tengo el siguiente XML:

<Library> <Item> <Field Name="Name">smooth</Field> <Field Name="File Type">mid</Field> <Field Name="File Size">60026</Field> </Item> <Item> <Field Name="Name">mid</Field> <Field Name="File Type">mp3</Field> <Field Name="File Size">4584972</Field> </Item> </Library>

Me gustaría obtener todos los nombres de elementos de los elementos del tipo de archivo "medio". Mi consulta XPATH se ve como

/Library/Item/Field [ @Name="Name" and (../Field[@Name="File Type" and ../Field[.="mid"]]) ]

Pero desafortunadamente ambos artículos son devueltos desde esa consulta.

smooth mid

Parece que la última condición no se verifica en los campos con el atributo "Tipo de archivo" solamente, sino en todos los campos. Lo que da como resultado una devolución del nombre "mid", incluso si este elemento es de tipo de archivo "mp3".

¿Cómo puedo restringir la comparación con "mid" al valor del campo con el atributo Name = "File Type"?

¿Alguien puede sugerirme una sintaxis XPATH que funcione como se espera?


Los predicados XPath se pueden aplicar en cualquier lugar, esto sería más sencillo:

/Library/Item[Field[@Name="File Type"] = "mid"]/Field[@Name="Name"]

Tu propia expresión sería correcta como

/Library/Item/Field[ @Name="Name" and ../Field[@Name="File Type"] = "mid" ]