javascript - whatwg - Dos condiciones usando OR en XPATH
whatwg español (4)
Tengo un cuadro de texto, ''txtSearch''. Lo estoy usando para buscar personas por Apellido. este es mi codigo
var xmlTempResultSearch = xmlResidentListDisplay.selectNodes(
"//PeopleList/Row[contains(translate(@LastName, ''ABCDEFGHIJKLMNOPQRSTUVWXYZ'', ''abcdefghijklmnopqrstuvwxyz''), ''" +
txtSearch.value + "'')]");
Este código selecciona todos los apellidos en el XML como la entrada de texto en el cuadro de texto txtSearch.
Esto traduce todas las letras mayúsculas a letras minúsculas.
Entonces, si estoy buscando ''Dorosan'', si escribo ''doro'', recupera a la persona correcta porque tradujo la ''D'' a ''d''. Pero cuando escribo ''Doro'', no recupera a la persona correcta.
Me pregunto si puedo tener dos condiciones en un XPATH, y ¿cómo? Quiero poder traducir todo en mayúsculas a minúsculas, O traducir todo en minúsculas a mayúsculas.
Como señaló Michael Kay, no es necesario.
Simplemente use :
PeopleList/Row
[contains(translate(@LastName,
''ABCDEFGHIJKLMNOPQRSTUVWXYZ'',
''abcdefghijklmnopqrstuvwxyz''), ''"
+
translate(txtSearch.value,
''ABCDEFGHIJKLMNOPQRSTUVWXYZ'',
''abcdefghijklmnopqrstuvwxyz'')''"
+ "'')]");
No creo que necesites un "o" aquí. Solo necesita traducir ambos operandos a minúsculas, en lugar de traducir solo uno de ellos.
puedes usar or
/ and
dentro [....]
Ejemplo:
//*[contains(''abc'') or contains(''def'') or text()=''abcdef'']
Más información sobre los operadores: http://www.w3schools.com/xpath/xpath_operators.asp
and
y or
se permiten dentro de la condición: [here]
. O también puede usar varias rutas en una expresión XPath usando el signo de canalización.
//PeopleList/Row[c1] | //PeopleList/Row[c2]