Diferencia entre revisiones de «Exercicios de XPath»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 1: Línea 1:
 
= Ferramentas =
 
= Ferramentas =
  
Cando queiramos asegurarnos de que estamos escribindo correctamente a expresión XPath que necesitamos, podemos recorrer a aplicacións específicas de avaliación das mesmas. Estas aplicacións son pequenas, lixeiras e ofrecen algunhas funcionalidades específicas para o fin que perseguen.
+
Cando queiramos asegurarnos de que estamos escribindo correctamente a expresión XPath que precisamos existen aplicacións específicas para a avaliación das mesmas. Estas aplicacións son pequenas, lixeiras e ofrecen algunhas funcionalidades específicas para o fin que perseguen.
  
Algunhas son aplicacións independentes, pero existen tamén aplicacións web ou exten-sións para o navegador que se avalían sobre o documento que teñamos aberto no mesmo.
+
Algunhas son aplicacións independentes; e existen tamén aplicacións web ou extensións para o navegador que se avalían sobre o documento que teñamos aberto.
  
Tamén podemos empregar para avaliar expresións XPath aplicacións de edición de do-cumentos XML que aporten esta funcionalidade, como aquelas que vimos no tema dedicado a XML.
+
Tamén podemos empregar para avaliar expresións XPath aplicacións de edición de documentos XML que aporten esta funcionalidade, como aquelas que vimos no tema dedicado a XML.
  
== Como avaliar unha expresión XPath con XML copy editor ==
+
Para a resolución exercicios na clase empregaremos XML copy editor; tes [https://www.mclibre.org/consultar/xml/otros/xmlcopyeditor.html#xce-xpath indicacións] de cómo facelo.
Tes [https://www.mclibre.org/consultar/xml/otros/xmlcopyeditor.html#xce-xpath indicacións] de cómo facelo,
 
  
== Como avaliar unha expresión XPath con XPath Builder ==
+
Podes revisar, analizar outras [[ferramentas de avaliación de XPath]] se o consideras convinte.
 
 
XPathBuilder é unha ferramenta moi sinxela e se adapta ben as necesidades que podemos ter para realizar as tarefas da presente actividade (ás veces convén desactivar a opción "Display XPath help", que pode resultar un pouco incómoda).
 
 
Soamente ten versión para sistemas operativos Windows. É gratuíta e pódese descargar des-de a dirección http://www.bubasoft.net/product/xpath-builder/.
 
 
 
== Como avaliar unha expresión XPath con XPath Visualizer Tool ==
 
 
 
É outra ferramenta para sistemas operativos Windows, de código libre, semellante á anterior, que podemos descargar dende a dirección http://xpathvisualizer.codeplex.com/.
 
 
 
A principal diferenza con XPathBuilder é que amosa o resultado resaltando o conxunto de nodos obtido; e polo tanto, soamente funciona con expresións que obteñan como resulta-do un conxunto de nodos. Non é capaz de avaliar expresións como "count(//produtos)".
 
 
 
 
 
== Como avaliar unha expresión XPath con XMLQuire ==
 
 
 
Esta [http://qutoric.com/xmlquire/ ferramenta gratuita] é un pouco máis completa e complexa que as anteriores.
 
 
 
== Como avaliar unha expresión XPath con XPath Checker ==
 
 
 
[https://addons.mozilla.org/es-ES/firefox/addon/1095 Complemento para o navegador Firefox] que permite avaliar expresións XPath sobre os documentos abertos.
 
 
 
== Como avaliar unha expresión XPath con XPath Tester ==
 
 
 
[Ferramenta web http://xpath.online-toolz.com/tools/xpath-editor.php] que permite introducir o documento XML e a expresión a avaliar.
 
  
 
= XPath con escenario de ciclos de fp, módulos e alumnado =
 
= XPath con escenario de ciclos de fp, módulos e alumnado =

Revisión del 10:17 17 ene 2023

Ferramentas

Cando queiramos asegurarnos de que estamos escribindo correctamente a expresión XPath que precisamos existen aplicacións específicas para a avaliación das mesmas. Estas aplicacións son pequenas, lixeiras e ofrecen algunhas funcionalidades específicas para o fin que perseguen.

Algunhas son aplicacións independentes; e existen tamén aplicacións web ou extensións para o navegador que se avalían sobre o documento que teñamos aberto.

Tamén podemos empregar para avaliar expresións XPath aplicacións de edición de documentos XML que aporten esta funcionalidade, como aquelas que vimos no tema dedicado a XML.

Para a resolución exercicios na clase empregaremos XML copy editor; tes indicacións de cómo facelo.

Podes revisar, analizar outras ferramentas de avaliación de XPath se o consideras convinte.

XPath con escenario de ciclos de fp, módulos e alumnado

<?xml version="1.0" encoding="utf-8"?> 
<!-- centro.xml -->
<centro>
  <ciclo id="ASIR" grao="CS">
    <módulo id="MP0370">
      <nome>Planificación e administración de redes</nome>
      <horas>213</horas>
    </módulo>
    <módulo id="MP0371">
      <nome>Fundamentos hardware</nome>
      <horas>107</horas>
    </módulo>
    <módulo id="MP0373">
      <nome>Linguaxes de marcas e sistemas de xestión de información</nome>
      <horas>70</horas>
    </módulo>
    <módulo id="MP0375">
      <nome>Servizos de rede e Internet</nome>
      <horas>140</horas>
    </módulo>
    <alumno id="AL0319">
      <nome_apelidos>Xoan Cancedo da Foz</nome_apelidos>
      <datanacemento>06/11/1991</datanacemento>
      <observacións>Xa fixo outro ciclo</observacións>
      <cursa id="MP0370" />
      <cursa id="MP0371" nota="8" />
    </alumno>
    <alumno id="AL0324">
      <nome_apelidos>María Penedo Suárez</nome_apelidos>
      <datanacemento>26/07/1993</datanacemento>
      <cursa id="MP0370" nota="9" />
      <cursa id="MP0374" nota="4" />
      <cursa id="MP0375" />
    </alumno>
  </ciclo>
  <ciclo id="DAW" grao="CS">
    <módulo id="MP0373">
      <nome>Linguaxes de marcas e sistemas de xestión de información</nome>
      <horas>70</horas>
    </módulo>
    <módulo id="MP0484">
      <nome>Bases de datos</nome>
      <horas>105</horas>
    </módulo>
    <módulo id="MP0485">
      <nome>Programación</nome>
      <horas>135</horas>
    </módulo>
    <alumno id="AL0497">
      <nome_apelidos>Mario Fernández Salvado</nome_apelidos>
      <datanacemento>03/08/1993</datanacemento>
      <cursa id="MP0373" />
      <cursa id="MP0484" />
      <cursa id="MP0485" />
    </alumno>
    <alumno id="AL0324">
      <nome_apelidos>María Penedo Suárez</nome_apelidos>
      <datanacemento>26/07/1993</datanacemento>
      <observacións>Traballa polas tardes</observacións>
      <cursa id="MP0373" nota="7" />
      <cursa id="MP0484" nota="8" />
    </alumno>
  </ciclo>
</centro>

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

  • a) Os nomes e apelidos do alumnado do ciclo "ASIR".
  • b) A suma das horas dos módulos do ciclo "ASIR".
  • c) Os "id" dos ciclos nos que se imparta o módulo con código "MP0373".
  • d) Os alumnos nados despois do ano 1992.
  • e) Os alumnos que non teñan "observacións".
  • f) Os alumnos que teñan algún módulo suspenso ("nota" < 5).
  • g) Os "id" dos alumnos que están matriculados nalgún módulo pero todavía non teñen "nota".
  • h) Os alumnos que non teñen ningún módulo aprobado.
  • i) O "id" do último ciclo que figure no documento.
  • j) A media das notas da alumna "María Penedo Suárez" no ciclo "DAW".

Solución

XPath con escenario de equipamento informático (básico)

<?xml version="1.0" encoding="utf-8"?>
<equipos>
 <máquina nome="PC017">
  <hardware>
   <tipo>PC Sobremesa</tipo>
   <fabricante>Dell</fabricante>
   <procesador marca="Intel" num_nucleos="4" velocidade="3,1">i7</procesador>
   <memoria tecnoloxía="DDR3">8</memoria>
   <disco tecnoloxía="SATA" capacidade="2000"/>
   <gravadora tipo="DVD"/>
  </hardware>
  <config>
   <OS>Windows 7</OS>
   <IP>192.168.20.105</IP>
   <gateway>192.168.20.1</gateway>
  </config>
 </máquina>
 <máquina nome="GALILEO">
  <hardware>
   <tipo>Torre</tipo>
   <fabricante>Fujitsu-Siemens</fabricante>
   <procesador marca="Intel" num_nucleos="4" velocidade="3">Xeon</procesador>
   <memoria tecnoloxía="DDR2">2</memoria>
   <disco tecnoloxía="SCSI" capacidade="200"/>
   <disco tecnoloxía="SCSI" capacidade="200"/>
   <disco tecnoloxía="SCSI" capacidade="200"/>
   <lectora tipo="DVD"/>
  </hardware>
  <config>
   <role>Servidor de dominio</role>
   <OS>Windows 2008 Server R2</OS>
   <IP>192.168.20.10</IP>
   <gateway>192.168.20.1</gateway>
  </config>
 </máquina>
</equipos>

Rutas de localización sinxelas

Obtén as rutas de localización para obter os seguintes conxuntos de nodos:

  • As máquinas que contén o documento.
  • A información correspondente ao hardware das máquinas.
  • A información de configuración das máquinas.
  • A lista de fabricantes dos equipos.
  • A lista de discos que conteñen.
  • Os enderezos IP.

Rutas de localización con diversos eixos

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

  • Os nomes das máquinas.
  • Os nomes das máquinas que teñan gravadora óptica.
  • O sistema operativo das máquinas nas que figure o "role".

Solución

XPath con escenario de equipamento informático (avanzado)

<?xml version="1.0" encoding="utf-8"?>
<equipos>
 <máquina nome="PC017">
  <hardware>
   <tipo>PC Sobremesa</tipo>
   <fabricante>Dell</fabricante>
   <procesador marca="Intel" num_nucleos="4" velocidade="3.1">i7</procesador>
   <memoria tecnoloxía="DDR3">8</memoria>
   <disco tecnoloxía="SATA" capacidade="2000"/>
   <gravadora tipo="DVD"/>
  </hardware>
  <config>
   <OS>Windows 7</OS>
   <IP>192.168.20.105</IP>
   <gateway>192.168.20.1</gateway>
  </config>
 </máquina>
 <máquina nome="PC053">
  <hardware>
   <tipo>Semitorre</tipo>
   <memoria>0.5</memoria>
   <disco capacidade="40"/>
   <lectora tipo="CD"/>
  </hardware>
  <config>
   <OS>Windows XP</OS>
  </config>
 </máquina>
 <máquina nome="PC007">
  <hardware>
   <tipo>Semitorre</tipo>
   <memoria tecnoloxía="DDR">0.5</memoria>
   <disco capacidade="40"/>
   <lectora tipo="CD"/>
  </hardware>
  <config>
   <OS>Windows XP</OS>
  </config>
  <notas>Sin tarxeta de rede</notas>
 </máquina>
 <máquina nome="PR003">
  <hardware>
   <tipo>Impresora Inyección</tipo>
   <fabricante>Lexmark</fabricante>
  </hardware>
  <config/>
 </máquina>
 <máquina nome="PC011">
  <hardware>
   <tipo>Semitorre</tipo>
   <memoria>1</memoria>
   <disco capacidade="80"/>
   <lectora tipo="CD"/>
  </hardware>
  <config>
   <OS>Windows 2000 SP4</OS>
   <IP>192.168.10.221</IP>
  </config>
 </máquina>
 <máquina nome="PC019">
  <hardware>
   <tipo>Semitorre</tipo>
   <procesador marca="AMD" velocidade="1.4">Athlon</procesador>
   <memoria>0.5</memoria>
   <disco capacidade="40"/>
   <gravadora tipo="CD"/>
  </hardware>
  <config>
   <OS>Mandriva 2007</OS>
   <IP>192.168.10.45</IP>
   <gateway>192.168.10.1</gateway>
  </config>
 </máquina>
 <máquina nome="PR007">
  <hardware>
   <tipo>Impresora Láser</tipo>
   <fabricante>OKI</fabricante>
  </hardware>
  <config/>
  <notas>Monocromo, dúplex, red</notas>
 </máquina>
 <máquina nome="COPERNICO">
  <hardware>
   <tipo>Torre</tipo>
   <fabricante>Fujitsu-Siemens</fabricante>
   <procesador marca="Intel" num_nucleos="4" velocidade="3">Xeon</procesador>
   <memoria tecnoloxía="DDR">2</memoria>
   <disco tecnoloxía="SCSI" capacidade="500"/>
   <disco tecnoloxía="SCSI" capacidade="500"/>
   <gravadora tipo="DVD"/>
  </hardware>
  <config>
   <role>Servidor de dominio</role>
   <OS>Windows 2003 Server R2</OS>
   <IP>192.168.20.11</IP>
   <gateway>192.168.20.1</gateway>
  </config>
 </máquina>
 <máquina nome="GALILEO">
  <hardware>
   <tipo>Torre</tipo>
   <fabricante>Fujitsu-Siemens</fabricante>
   <procesador marca="Intel" num_nucleos="4" velocidade="3">Xeon</procesador>
   <memoria tecnoloxía="DDR2">2</memoria>
   <disco tecnoloxía="SCSI" capacidade="200"/>
   <disco tecnoloxía="SCSI" capacidade="200"/>
   <disco tecnoloxía="SCSI" capacidade="200"/>
   <lectora tipo="DVD"/>
  </hardware>
  <config>
   <role>Servidor de dominio</role>
   <OS>Windows 2008 Server R2</OS>
   <IP>192.168.20.10</IP>
   <gateway>192.168.20.1</gateway>
  </config>
 </máquina>
 <máquina nome="KEPLER">
  <hardware>
   <tipo>Rack</tipo>
   <fabricante>HP</fabricante>
   <procesador marca="Intel" num_nucleos="2" velocidade="3">Core2 Duo</procesador>
   <memoria tecnoloxía="DDR2">4</memoria>
   <disco tecnoloxía="SATA" capacidade="500"/>
   <disco tecnoloxía="SATA" capacidade="500"/>
   <disco tecnoloxía="SATA" capacidade="500"/>
   <gravadora tipo="DVD"/>
  </hardware>
  <config>
   <role>Servidor de arquivos</role>
   <OS>Ubuntu 8.04 Server</OS>
   <IP>192.168.10.10</IP>
   <gateway>192.168.10.1</gateway>
  </config>
 </máquina>
 <máquina nome="NEWTON">
  <hardware>
   <tipo>Rack</tipo>
   <fabricante>HP</fabricante>
   <procesador marca="Intel" num_nucleos="2" velocidade="3">Core2 Duo</procesador>
   <memoria tecnoloxía="DDR2">4</memoria>
   <disco tecnoloxía="SATA" capacidade="500"/>
   <disco tecnoloxía="SATA" capacidade="500"/>
   <gravadora tipo="DVD"/>
  </hardware>
  <config>
   <role>Servidor web</role>
   <OS>Ubuntu 8.04 Server</OS>
   <IP>192.168.10.11</IP>
   <gateway>192.168.10.1</gateway>
  </config>
 </máquina>
</equipos>

Rutas de localización con tests de nodo e predicados

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

  • Os discos de tecnoloxía "SCSI".
  • O nome do sistema operativo da máquina con IP "192.168.10.45".
  • Os atributos que figuran nos procesadores da marca "AMD".
  • Os textos (soamente) que figuran na configuración (elemento "config") do equipo de nome "COPERNICO".
  • As máquinas de tipo "Semitorre" con sistema operativo "Windows XP".
  • Os fabricantes das máquinas que teñan 4GB de memoria "DDR2".
  • O sistema operativo das máquinas nas que figure o número de núcleos do procesador.
  • Os nomes das máquinas que empreguen memoria con tecnoloxía "DDR2".
  • As máquinas con procesador da marca "Intel" e gravadora de DVD.
  • A configuración daquelas máquinas nas que figura un gateway.

Solución

<?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:

  • Os comentarios.
  • Os comentarios da película "Leaving Las Vegas".
  • As películas de xénero "Drama".
  • Os nomes das actrices.
  • Os elementos non baleiros (conteñen algún texto).

Rutas de localización avanzadas

Escribe as expresións XPath para obter:

  • As películas nas que o título sexa igual ao título orixinal.
  • O atributo "id" correspondente á actriz "Elisabeth Shue".
  • Os títulos das películas nas que participou o actor con atributo id=51.
  • 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".
  • O título da última película que aparece no documento.
  • A suma dos importes daquelas películas nas que o mesmo figura en dólares.
  • A suma en euros dos importes das películas, considerando un cambio de 1€ = 1,4$.

Solución

  • [[]]