Saltar al contenido principal

Localización

Consideremos el siguiente documento XML:

<?xml version="1.0" encoding="UTF-8"?>
<europa>
<pais>
<!-- Informacion sobre Alemania-->
<nombre>Alemania</nombre>
<habitantes unidad="millones">82.4</habitantes>
<capital>Berlín</capital>
<sigla-pais>DE</sigla-pais>
<prefijo>0049</prefijo>
</pais>
<pais>
<!-- Informacion sobre España-->
<nombre>España</nombre>
<habitantes unidad="millones">41.2</habitantes>
<capital>Madrid</capital>
<sigla-pais>ES</sigla-pais>
<prefijo>0034</prefijo>
</pais>
</europa>

A continuación, se muestran algunas rutas de localización básicas.

Localizar el nodo raíz

La ruta de localización del nodo raíz de un documento XML es la siguiente:

/

Localizar elementos

La localización de elementos permite seleccionar todos los hijos del nodo de contexto con el nombre especificado.

Para obtener todos los nodos <pais> que contiene el nodo <europa>, se utilizaría la siguiente expresión XPath:

/europa/pais

Para obtener todos los nodos <nombre> que contienen los nodos <pais>, se utilizaría la siguiente expresión XPath:

/europa/pais/nombre

Localizar descendientes

Para localizar descendiente, podemos utilizar dos barras diagonales:

//

Se trata de una forma abreviada de la siguiente expresión XPath:

/descendant-or-self::node()/

Por ejemplo, para localizar todos los descendientes <nombre> de <europa>, se utilizaría la siguiente expresión XPath:

/europa//nombre

Localizar atributos

Para hacer referencia a un atributo en XPath se emplea el símbolo @ seguido del nombre del atributo deseado.

Para obtener el atributo millones que contiene el nodo <habitantes>, se usaría la siguiente expresión:

/europa/pais/habitantes/@unidad

Localizar comentarios

Para hacer referencia a los comentarios que están dentro de un nodo se utiliza la función comment().

Para obtener los nodos comentarios que hay dentro del nodo <pais>, se utilizaría la siguiente expresión XPath:

/europa/pais/comment()

Localizar nodos de texto

Para hacer referencia al texto que hay dentro de un nodo, se utiliza la función text().

Para obtener el texto que contiene el nodo <nombre> usaríamos la siguiente expresión XPath:

/europa/pais/nombre/text()

Para obtener el texto que contiene el atributo millones usaríamos la siguiente expresión XPath:

/europa/pais/habitantes/@unidad/text()

Localizar instrucciones de procesamiento

Para hacer referencia al nodo de instrucciones de procesamiento del elemento se usará la función processing-instruction().