XPath con escenario de videoteca

De MediaWiki
Ir a la navegación Ir a la búsqueda

Enunciado

O XML deste escenario é o seguinte.

<?xml version="1.0" encoding="utf-8"?>
<videoteca data_creación="24/02/2009">
 <película id="1">
  <importe moneda="dólar">13.56</importe>
  <título>El santo</título>
  <títuloorixinal>The Saint</títuloorixinal>
  <ano>1997</ano>
  <director>Phillip Noyce</director>
  <xénero>Acción</xénero>
  <duración>111</duración>
  <!--  Elisabeth Shue -->
  <actúa id="51"/>
  <!--  Val Kilmer -->
  <actúa id="156"/>
 </película>
 <película id="3">
  <importe moneda="euro">22.18</importe>
  <título>Leaving Las Vegas</título>
  <títuloorixinal>Leaving Las Vegas</títuloorixinal>
  <ano>1995</ano>
  <director>Mike Figgis</director>
  <xénero>Drama</xénero>
  <duración>107</duración>
  <!--  Nicolas Cage -->
  <actúa id="187"/>
  <!--  Elisabeth Shue -->
  <actúa id="51"/>
 </película>
 <película id="4">
  <importe moneda="dólar">11.52</importe>
  <título>¿A quién ama Gilbert Grape?</título>
  <títuloorixinal>What's Eating Gilbert Grape?</títuloorixinal>
  <ano>1993</ano>
  <director>Lasse Hallström</director>
  <xénero>Drama</xénero>
  <duración>118</duración>
  <!--  Johnny Depp  -->
  <actúa id="139"/>
 </película>
 <actor id="51">
  <nome>Elisabeth Shue</nome>
  <sexo>muller</sexo>
  <datanacemento>06/10/1963</datanacemento>
  <url>http://www.imdb.com/name/nm0000223/</url>
 </actor>
 <actor id="139">
  <nome>Johnny Depp</nome>
  <sexo>home</sexo>
  <datanacemento>09/06/1963</datanacemento>
  <url>http://www.imdb.com/name/nm0000136/</url>
 </actor>
 <actor id="156">
  <nome>Val Kilmer</nome>
  <sexo>home</sexo>
  <datanacemento>31/12/1959</datanacemento>
 </actor>
 <actor id="187">>
  <nome>Nicolas Cage</nome>
  <sexo>home</sexo>
  <datanacemento>07/01/1964</datanacemento>
 </actor>
</videoteca>

Rutas de localización con tests de nodo e predicados

Escribe as expresións XPath para obter os seguintes conxuntos de nodos:

1. Os comentarios.

Resutado agardado:

Expresión:

//comment()

2. Os comentarios da película "Leaving Las Vegas".

Resutado agardado:

Expresión:

//película[título="Leaving Las Vegas"]/comment()

3. As películas de xénero "Drama".

Resutado agardado:

Expresión:

//película[xénero="Drama"]

4. Os nomes das actrices.

Resutado agardado:

Expresión:

//actor[sexo="muller"]/nome

5. Os elementos non baleiros (conteñen algún texto).

Resutado agardado:

Expresión:

//*[text()]

Rutas de localización avanzadas

Escribe as expresións XPath para obter:

6. As películas nas que o título sexa igual ao título orixinal.

Resutado agardado:

Expresión:

//película[título=títuloorixinal]

7. O atributo "id" correspondente á actriz "Elisabeth Shue".

Resutado agardado:

Expresión:

//actor[nome="Elisabeth Shue"]/@id

8. Os títulos das películas nas que participou o actor con atributo id=51.

Resutado agardado:

Expresión:

//película[actúa/@id=51]/título

9. Baseándote nos dous resultados anteriores, escribe a expresión correspondente aos títulos das películas nas que participou a actriz de nome "Elisabeth Shue".

Resutado agardado:

Expresión:

//película[actúa/@id=//actor[nome="Elisabeth Shue"]/@id]/título

10. O título da última película que aparece no documento.

Resutado agardado:

Expresión:

//película[count(//película)]/título //película[last()]/título

11. A suma dos importes daquelas películas nas que o mesmo figura en dólares.

Resutado agardado:

Expresión:

sum(//importe[@moneda="dólar"])

12. A suma en euros dos importes das películas, considerando un cambio de 1€ = 1,4$.

Resutado agardado:

Expresión:

sum(//importe[@moneda="dólar"]) div 1.4 + sum(//importe[@moneda="euro"])

Solución

  • [[]]

Referencias

  • Traballo realizado durante unha licenza de formación retribuída pola Consellería de Cultura, Educación e Ordenación Universitaria. Margarita Pin Rodríguez, Víctor M. Lourido Estévez. Licenza Creative Commons BY-NC-SA (recoñecemento - non comercial - compartir igual).