Saltar al contenido principal

Ejercicio 505

Consideremos el siguiente documento XML:

<?xml version="1.0" encoding="UTF-8"?>
<listado>
<cuenta>
<titular dni="5671001D">Ramon Perez</titular>
<saldoactual moneda="euros">12000</saldoactual>
<fechacreacion>13-abril-2012</fechacreacion>
</cuenta>
<fondo>
<cuentaasociada>20-A</cuentaasociada>
<datos>
<cantidaddepositada>20000</cantidaddepositada>
<moneda>Euros</moneda>
</datos>
</fondo>
<fondo>
<cuentaasociada>21-DX</cuentaasociada>
<datos>
<cantidaddepositada>4800</cantidaddepositada>
<moneda>Dólares</moneda>
</datos>
</fondo>
<cuenta>
<titular dni="39812341C">Carmen Diaz</titular>
<saldoactual moneda="euros">1900</saldoactual>
<fechacreacion>15-febrero-2011</fechacreacion>
</cuenta>
</listado>

Construye las expresiones XPath que permitan obtener los siguientes datos:

  1. Extraer la cantidad depositada en el fondo con cuenta asociada 20-A.
  2. Extraer un listado sin etiquetas de todas las monedas usadas por los distintos fondos.
  3. Extraer el DNI de las cuentas que usen dólares como moneda de base.
  4. Extraer toda la información de los fondos que usen Euros por un valor inferior a 2500.
Solución
  1. Extraer la cantidad depositada en la cuenta 20-A.
/listado/fondo[cuentaasociada = "20-A"]/datos/cantidaddepositada/text()
  1. Extraer un listado sin etiquetas de todas las monedas usadas por los distintos fondos.
/listado/fondo/datos/moneda/text()
  1. Extraer el DNI de las cuentas que usen dolares como moneda de base.
/listado/cuenta[saldoactual/@moneda = "dólares"]/titular/@dni/string()
  1. Extraer toda la información de los fondos que usen euros por un valor inferior a 2500.
/listado/fondo[datos/cantidaddepositada<2500 and datos/moneda = "Euros"]