Dada una estructura XML como esta:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
¿Cómo podría obtener el valor de lang
(dónde lang
está eng
en el título del libro), para el primer elemento?
Respuestas:
Uso :
Esto significa :
Seleccione el
lang
atributo del elemento de título que es un elemento secundario del primer elementobook
secundario del elemento superior del documento XML.Para obtener solo el valor de cadena de este atributo, use la función XPath estándar
string()
:fuente
lang
atributo. Si el atributo no contiene corchetes, no serán parte del resultado de la evaluación de la expresión XPath. Supongo que estos son agregados por una herramienta (inapropiada) que está utilizando./*/book[1]/title/@lang
selecciona un conjunto de nodos de 0 o más nodos de atributos, mientras que la expresión XPathstring(/*/book[1]/title/@lang)
cuando se evalúa, produce el valor de cadena de este conjunto de nodos, y este es el valor de cadena del primero (en orden de documento) nodo de este conjunto de nodos.lang="eng"
es solo una de las muchas representaciones textuales de un nodo de atributo que tiene un nombre "lang", no pertenece a un espacio de nombres y tiene un valor de cadena la cadena "eng"¡Gracias! Esto resolvió un problema similar que tuve con un atributo de datos dentro de un Div.
Use este xpath:
//*[@id="prop_sample"]/@data-want
¡Espero que esto ayude a alguien más!
fuente
Puedes probar debajo del patrón xPath,
fuente
También puedes conseguirlo
aunque si está utilizando XMLDOM con JavaScript, puede codificar algo como
y
n1.text
te dará el valor"eng"
fuente
puedes usar:
esto significa que obtienes todos los nodos de atributos con un nombre igual a "lang" y obtienes el primero.
fuente
Aquí está el fragmento de obtener el valor de atributo de "lang" con XPath y VTD-XML.
fuente
Si está utilizando PostgreSQL, esta es la forma correcta de obtenerlo. Esto es solo una suposición en la que tiene una tabla de libros TÍTULO y una columna PRECIO con datos poblados. Aquí está la consulta
fuente