2012-03-17 29 views
6

¿Cómo puedo seleccionar, a través de xpath, todos los elementos de entrada en un documento que tienen un valor determinado escrito en ellos.Obtener elemento de etiqueta de entrada con un valor de texto dado mediante xpath

Por ejemplo, si voy a Google y escribo "hello world", ¿cómo obtengo todas las etiquetas de entrada que tienen "hello world" escrito en ellas?

Jugar con cosas como las siguientes no ha valido la pena, ya que el valor en el campo de texto no es realmente parte del documento.

document.evaluate("//input[text() = 'hello world']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue 

Debería ser bastante simple, pero estoy sorprendentemente estancado.

+0

¿En realidad se trata de agarrar esos valores de una página después de que las cargas y un usuario algunas acciones, o ya tiene el documento xml en alguna parte y desea buscarlo? –

Respuesta

11

Su expresión-x ruta debe buscando entradas que tienen el valor atributo con 'hola mundo'

Esto se debe a que es donde el valor se pone en, no el texto interior del elemento.

El elemento HTML real se vería así:

<input type='text' value='hello world' /> 

la expresión XPath debe verse como:

//input[@value = 'hello world'] 
0

no ha especificado el idioma, pero para recuperar la entrada del usuario necesitará ser javascript de algún tipo. En jQuery, usted puede hacer esto:

$("input:contains('hello world')").val() 

Para más detalles, consulte la documentación de jQuery en la contains() selector y el método

2

val Una alternativa sin jQuery para conseguir la entrada que contiene el texto de entrada objetivo // [contiene (@value, 'hello world')]. Esto coincidiría con la entrada incluso si el usuario escribe "Hola número 7 del mundo"

0

Esto también parece funcionar:

//input[@type='text'][@value='hello world'] 
Cuestiones relacionadas