Ensayos para Examen LMSGI

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

Ejercicios XPATH para hacer

Realiza estas consultas XPATH sobre el archivo pizzas.xml

1. Dime el nombre de las pizzas


//pizzas/pizza/@nombre
2. Busca los ingredientes que lleva la pizza de tres quesos
//pizzas/pizza[@nombre="Tres Quesos"]/ingrediente
3. Dime el precio de las tres pizzas
//pizzas/pizza/@precio
4. Localiza las pizzas que tengan 6 euros
//pizzas/pizza[@precio=6]
5. Busca las pizzas que tengan queso
//pizzas[pizza/ingrediente[@nombre="Queso"]]

Realiza estas consultas en XQuery sobre el archivo catalogo.xml

1. Muestra el nombre de los artistas


for $catalogo in doc("C:\Users\angel1\desktop\Transformación\catalogo.xml")
/catalogo/artistas/artista/nombre/text()
return $catalogo
2. Muestra las discográficas, excepto la nacionalidad USA
for $catalogo in
doc("C:\Users\angel1\desktop\Transformación\catalogo.xml")//catalogo/
discograficas/discografica
where $catalogo/nacionalidad !="USA"
return $catalogo
3. Listar los cd que fueron antes del año 2009
for $catalogo in doc("C:\Users\angel1\desktop\Transformación\catalogo.xml")
/catalogo/cds/cd
where $catalogo/año <2009
return $catalogo/año
4. Mostrar los artistas que viven en España
for $catalogo in
doc("C:/Users/angel1/desktop/Transformación/catalogo.xml")/catalogo/artistas/
artista[nacionalidad="España"]
return $catalogo
5. Dime el título de los cd y que me los ordene por precio de forma ascendente
for $catalogo in
doc("C:\Users\angel1\desktop\Transformación\catalogo.xml")/catalogo/cds/cd
order by $catalogo/precio ascending
return
<catalogo>
{$catalogo/titulo}
</catalogo>
6. Listar los cd que tengan un precio mayor de 15
for $catalogo in doc("C:\Users\angel1\desktop\Transformación\catalogo.xml")
/catalogo/cds/cd[precio > 15]
return $catalogo
7. Agrúpame las discografías por nombre y nacionalidad en una etiqueta <disco>

8. Listar año, título y precio del cd autor=tres disc=”tres”.


for $catalogo in doc("C:\Users\angel1\desktop\Transformación\catalogo.xml")
/catalogo/cds/cd
where $catalogo/@autor="tres" and $catalogo/@disc="tres"
return <catalogo>{$catalogo/nombre}{$catalogo/nacionalidad}</catalogo>

Realiza estas consultas XPATH sobre el archivo arboles.xml

1. Hazme la media de la altura de las tres especies de arboles


2. Sácame el n.latin de los tres especies
3. Sácame las especies que sean de hoja perenne
4. Sácame las especies que tengan una estructura de copa ovoidal
5. Sácame n.vulgar de cada árbol

Realiza estas consultas de Xquery sobre el archivo cds.xml

1. Sácame el título de los CD


for $cd in doc("C:/Users/angel1/desktop/Transformación/cds.xml")/CD_OFERTA/CD/
titulo/text()
return $cd
2. Hazme la media de los precios de los CD
let $cd := /CD_OFERTA/CD
return <media>{avg($cd/precio)}</media>
3. Sacame los CD que estuvieran después de 1987 por el artista Bee Gees
for $cd in doc("C:/Users/angel1/desktop/Transformación/cds.xml") /CD_OFERTA/CD
where $cd/artista="Bee Gees" and $cd/Año > 1987
return $cd
4. Sacame el pais de los CD excepto la nacionalidad UK y España
for $cd in doc("C:/Users/angel1/desktop/Transformación/cds.xml")//CD_OFERTA/CD
where $cd/pais !="UK" and $cd/pais !="España"
return $cd
5. Sacame los CD que tengan un precio de 7 y 9.90
for $cd in doc("C:/Users/angel1/desktop/Transformación/cds.xml")//CD_OFERTA/CD
where $cd/precio=7 and $cd/precio=9.90
return $cd
6. Sacame el precio del CD de juan perro y Still got the blues
for $cd in
doc("C:/Users/angel1/desktop/Transformación/cds.xml")/CD_OFERTA/CD/precio
where
$cd/titulo = "La cancion de Juan Perro"
and
$cd/titulo = "Still got the blues"
return $cd/precio
7. Sacame los CD que tengan un precio de 9.90, que sean de España.
for $cd in
doc("C:/Users/angel1/desktop/Transformación/cds.xml")//CD_OFERTA/CD[precio >
9.90 and CD/pais = "España"]
return $cd
8. Mostrar en una tabla de HTML el título, discográfica y el año, cada uno en una fila
<table> {
for $cd in doc("C:/Users/angel1/desktop/Transformación/cds.xml")//CD_OFERTA/CD
return <tr><td>{$cd/titulo/text()}</td><td>{$cd/discografica/text()}</td><td>{$cd/
año/text()}</td></tr>} </table>
9. Hazme la suma del precio de todos los CD
let $cd := /CD_OFERTA/CD
return <cd>{sum($cd/precio)}</cd>
10. Sacame el titulo y el año del CD y que estén ordenados de forma descendente por
año
for $cd in doc("C:/Users/angel1/desktop/Transformación/cds.xml")//CD_OFERTA/CD
order by $cd/año descending
return
<cd>
<titulo>{$cd/titulo/text()}</titulo>
<año>{$cd/año/text()}</año>
</cd>

Realiza estas transformaciones de XSLT empleando plantillas o bucles sobre el archivo


contenedores.xml:

1. Muéstrame los tipos de contenedores sin etiqueta.


2. Sacame una listas con los envases y los liquidos con <ol> <li>
3. Muestrame los tipos de envases en párrafos
4. Sacame el contenido del contenedor tipo=”Mediano” y me los organizas en una tabla
empleando table, th, tr y tr.
5. Mostrar en una lista los contenedores y envases ordenarlo y de forma ascendente
por liquido
6. Sacame el contenido de los envases y de los contenedores

Realiza estas consultas de Xquery sobre el archivo suministros.xml

1. Sacame los numproyecto de los sumnistra y lo etiquetas por <suma>


for $suministra in doc("C:/Users/angel1/desktop/Ficheros XML/suministros.xml")
/suministros/suministra
return <suma>{($suministra/numproyecto)}</suma>

2. Obtener el numproyecto ,me lo ordenas de manera ascendente por numparte


for $suministra in doc("C:/Users/angel1/desktop/Ficheros XML/suministros.xml")
/suministros/suministra/numproyecto/text()
order by numparte ascending
return $suministra
3. Realiza la suma de la cantidad todos los suministra y me lo organizas por la etiqueta
con la etiqueta <suma2>.
let $suministra := /suministros/suministra
return <suma2>{sum($suministra/cantidad)}</suma2>
4. Obtener el numparte de todos los suministra, que la cantidad sea 200 y que me los
ordenes numprov de manera descendente.
for $suministra in doc("C:/Users/angel1/desktop/Ficheros XML/suministros.xml")
/suministros/suministra/numparte/text()
where $suministra/cantidad = 200
order by $suministra/numparte descending
return $suministra
5. Mostrar las numparte de todos los suministra excepto la cantidad que sea 200 y 800
for $suministra in doc("C:/Users/angel1/desktop/Ficheros XML/suministros.xml")
/suministros/suministra
where $suministra/cantidad !=200 and $suministra/cantidad !=800
return $suministra
6. Mostrar el numproyecto y la cantidad de los suministra y me los ordenas de manera
ascendente por numprov.
for $suministra in doc("C:/Users/angel1/desktop/Ficheros XML/suministros.xml")
/suministros/suministra
order by $suministra/numprov ascending
return
<suministra>
<numproyecto>{$suministra/numproyecto/text()}</numproyecto>
<cantidad>{$suministra/cantidad/text()}</cantidad>
</suministra>
7. Saca los suministra que tengan una cantidad menor que 300 y luego que su
numparte sea p3.
for $suministra in doc("C:/Users/angel1/desktop/Ficheros XML/suministros.xml")
/suministros/suministra[cantidad=300]
where $suministra/numparte = "p3"
return $suministra
8. Hazme una tabla con los datos de suministra.
<table>{
for $suministra in doc("C:/Users/angel1/desktop/Ficheros
XML/suministros.xml")//suministros/suministra
return <tr><td>{$suministra/numprov/text()}</td><td>{$suministra/numparte/
text()}</td><td>{$suministra/numproyecto/text()}</td><td>{$suministra/cantidad/
text()}</td></tr>}</table>

Realiza estas consultas de Xquery sobre el archivo rootempleados.xml


1. Dime el IdEmpleado y la ocupación de cada empleado y me lo ordenas por país por
manera descendente.
for $Empleados in
doc("C:/Users/angel1/desktop/Transformación/rootempleados.xml")/RootEmpleados/
Empleados
order by $Empleados/pais descending
return
<empleados><IdEmpleado>{$Empleados/IdEmpleado/text()}</IdEmpleado><ocupacio
n>{$Empleados/ocupacion/text()}</ocupacion></empleados>
2. Busca los empleados que sean de España y Paraguay y me lo etiquetas por la
etiqueta <empleados2>.
for $Empleados in
doc("C:/Users/angel1/desktop/Transformación/rootempleados.xml")/RootEmpleados/
Empleados
where $Empleados/Pais = "España" and $Empleados/Pais = "Paraguay"
return <empleados2>{$Empleados/Pais/text()}</empleados2>
3. Busca a los empleados que sean de Peru, que tengan la Administrador de Base de
Datos.
for $Empleados in
doc("C:/Users/angel1/desktop/Transformación/rootempleados.xml")/RootEmpleados/
Empleados
where $Empleados/Pais = "Peru" and $Empleados/ocupacion = "Administrador de
Base de Datos"
return $Empleados
4. Dime todos los empleados que tengan los IdEmpleado excepto la ciudad Malaga y
que tenga la etiqueta <empleados3>.
for $Empleados in
doc("C:/Users/angel1/desktop/Transformación/rootempleados.xml")/RootEmpleados/
Empleados
where $Empleados/Ciudad !="Malaga"
return
<empleados3><IdEmpleado>{$Empleados/IdEmpleado}</IdEmpleado></empleados3>
5. Listar el name y el país de cada empleado que tenga la ciudad Trujillo.
for $Empleados in
doc("C:/Users/angel1/desktop/Transformación/rootempleados.xml")/RootEmpleados/
Empleados
where $Empleados/Ciudad="Trujillo"
return
<Empleados>
<name>{$Empleados/Nombre/text()}</name>
<Pais>{$Empleados/Pais/text()}</Pais>
</Empleados>
6. Buscar la ocupación excepto la que tenga Ing. de Software
for $Empleados in
doc("C:/Users/angel1/desktop/Transformación/rootempleados.xml")/RootEmpleados/
Empleados
where $Empleados/ocupacion !="Ing. de Software"
return $Empleados

Realiza estas consultas de XSLT sobre el archivo items.xml

1. Realiza una lista de ítems y los tipos de ítems con <ol> <li>.
2. Realiza una tabla con la información del fichero. Usa <table>, <tr> y <td>.
3. Mostrar los párrafos los name y los ppu de cada ítem.
4. Mostrar en formato texto los datos del id=”0002”.
5. Sacar en formato texto el contenido de los dos ítem.

2 horas como ensayo para el examen del lunes 12 de diciembre

1- A partir del fichero biblioteca.xml, escribe las instrucciones


XQuery para las consultas:
1. Listar el título de todos los libros.
for $libro in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/biblioteca.xml")/bib/libro/titulo/text()
return $libro
2. Listar año y título de todos los libros, ordenados por el año.
for $libro in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/biblioteca.xml")/bib/libro
order by $libro/@ano
return
<libro>
{$libro/@ano}
{$libro/titulo}
</libro>
3. Listar los libros cuyo precio sea 65.95
for $libro in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/biblioteca.xml")/bib/libro[precio=65.95]
return $libro
4. Listar los libros publicados antes del año 2000
for $libro in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/biblioteca.xml")/bib/libro
where $libro/@ano <2000
return $libro
5. Listar año y título de los libros publicados por Addison-
Wesley después del año 1992.
for $libro in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/biblioteca.xml")/bib/libro
where $libro/editorial = "Addisson-Wesley" and $libro/@ano >1992
return <libro><ano>{($libro/@ano)}</ano>{$libro/titulo}</libro>
6. Listar año y título de los libros que tienen más de un autor.
for $libro in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/biblioteca.xml")/bib/libro
where count($libro/autor)>1
return <libro><ano>{($libro/@ano)}</ano>{$libro/titulo}</libro>
7. Listar año y título de los libros que tienen no tienen autor.
for $libro in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/biblioteca.xml")/bib/libro
where count($libro/autor)=0
return <libro><ano>{($libro/@ano)}</ano>{$libro/titulo}</libro>
8. Mostrar los apellidos de los autores que aparecen en el
documento, sin repeticiones y
ordenados alfabéticamente descendente.
for $libro in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/biblioteca.xml")/bib/libro/autor
order by $libro/apellido descending
return $libro
9. Por cada libro, listar agrupado en un elemento <result> su
titulo y autores
for $libro in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/biblioteca.xml")/bib/libro
return <result>{($libro/titulo)}{$libro/autor}</result>
10. Por cada libro, obtener su título y el número de autores,
agrupados en un elemento <libro>
for $libro in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/biblioteca.xml")/bib/libro
return <libro titulo="{$libro/titulo}" num_autores="{count($libro/autor)}"/>
2- A partir del fichero ciclosFP.xml, escribe las instrucciones
XQuery para las consultas:
1. Consulta que devuelve los nombres de los ciclos que tienen
como identificador “DAM”
for $ciclo in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/ciclosFP.xml")/fp/ciclos_informatica/ciclo
where $ciclo/@id="DAM"
return $ciclo
2. Consulta que devuelve las titulaciones de los ciclos que
hayan sido publicadas a partir del año 2010 incluido, ordenados
alfabéticamente por titulación.
for $ciclo in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
XQuery-20221114/ciclosFP.xml")/fp/ciclos_informatica/ciclo/titulacion
where $ciclo/titulacion and $ciclo/anyo >2010
order by $ciclo/titulacion
return $ciclo
3. Obtener el nombre de los módulos de todos los ciclos que
tienen una duración de 96 horas.
for $ciclo in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
Xquery-20221114/ciclosFP.xml")
/fp/ciclos_informatica/ciclo/modulos/modulo[horas="96"]
return $ciclo/nombre
4. Obtener las órdenes que regulan los ciclos de informática en
Andalucía junto con el nombre
de ciclo formativo.
for $ciclo in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
Xquery-20221114/ciclosFP.xml") /fp/ciclos_informatica/ciclo/legislacion/orden
return $ciclo/nombre
5. Consulta que obtiene para cada uno de los módulos el
nombre y las horas.
for $ciclo in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
Xquery-20221114/ciclosFP.xml") /fp/ciclos_informatica/ciclo/modulos/modulo
return
<ciclo>
{$ciclo/nombre}
{$ciclo/horas}
</ciclo>
6. Devolver el nombre y las horas de los módulos ordenados
desde el nombre del modulo más corto hasta el nombre del
módulo más largo.

7. Devolver una lista de titulaciones como atributo de una


etiqueta ciclos.
for $ciclo in doc("C:/Users/angel1/Documents/Ficheros XML para probar XPath y
Xquery-20221114/ciclosFP.xml") /fp/ciclos_informatica/ciclo/titulacion
return <ciclos><titulacion>{$ciclo/@titulacion}</titulacion></ciclos>
8. Devolver la suma de horas de los módulos del ciclo SMR
excepto el modulo de “Formación
y Orientación Laboral”

También podría gustarte