Saltar al contenido

¿Cómo usar not contains () en xpath?

Solución:

Las consultas XPath distinguen entre mayúsculas y minúsculas. Después de ver su ejemplo (que, por cierto, es genial, ¡ya nadie parece dar ejemplos!), Puedo obtener el resultado que desea simplemente cambiando “negocios” por “Negocios”.

//production[not(contains(category,'Business'))]

Probé esto abriendo el archivo XML en Chrome y usando las herramientas de desarrollador para ejecutar esas consultas XPath, y me devolvió solo la categoría Película.

Necesito seleccionar todas las producciones con una categoría que no contenga “Negocios”.

Aunque voté a favor de la respuesta de @ Arran como correcta, también agregaría esto … Estrictamente interpretado, la especificación del OP se implementaría como

//production[category[not(contains(., 'Business'))]]

en vez de

//production[not(contains(category, 'Business'))]

Este último selecciona todas las producciones cuyo primero category el niño no contiene “Negocios”. Las dos expresiones XPath se comportarán de manera diferente cuando production no tiene category niños, o más de uno.

No hace ninguna diferencia en la práctica siempre que cada <production> tiene exactamente uno <category> child, como en su breve ejemplo XML. Si siempre puede contar con que eso sea cierto o no, depende de varios factores, como si tiene un esquema que refuerza esa restricción. Personalmente, optaría por la opción más robusta, ya que no “cuesta” mucho … asumiendo que su requisito como se indica en la pregunta es realmente correcto (a diferencia de, por ejemplo, ‘seleccione cada producción que no tenga una categoría que contiene “Negocios” ‘).

Puedes usar not(expression) función

not() es una función en xpath (a diferencia de un operador)

Ejemplo:

//a[not(contains(@id, 'xx'))]

O

expression != true()
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *