Podcast
Questions and Answers
Quin és el propòsit principal del llenguatge XPath?
Quin és el propòsit principal del llenguatge XPath?
- Validar la correcció d'un document XML.
- Transformar documents XML en altres formats.
- Accedir a informació específica dins d'un document XML. (correct)
- Definir l'estructura d'un document XML.
En quins tipus de tecnologies o llenguatges s'utilitza habitualment XPath?
En quins tipus de tecnologies o llenguatges s'utilitza habitualment XPath?
- Com a llenguatge de programació independent per al desenvolupament d'aplicacions.
- Únicament en navegadors web.
- En bases de dades relacionals.
- En consultes XQuery i transformacions XSLT. (correct)
Quina expressió XPath s'utilitza per seleccionar tots els nodes 'autor' independentment del seu nivell jeràrquic?
Quina expressió XPath s'utilitza per seleccionar tots els nodes 'autor' independentment del seu nivell jeràrquic?
- bib/autor
- //autor (correct)
- /autor
- /bib/autor
Què retorna la funció text()
en XPath?
Què retorna la funció text()
en XPath?
Quin operador XPath s'utilitza per seleccionar nodes que compleixen múltiples condicions?
Quin operador XPath s'utilitza per seleccionar nodes que compleixen múltiples condicions?
Quina funció XPath serveix per determinar si una cadena comença amb un prefix específic?
Quina funció XPath serveix per determinar si una cadena comença amb un prefix específic?
Quina funció XPath utilitzaries per obtenir l'últim element d'un conjunt de nodes?
Quina funció XPath utilitzaries per obtenir l'últim element d'un conjunt de nodes?
Com s'expressa en XPath la selecció de tots els llibres anteriors a l'any 2003, assumint que l'element 'any' conté l'any de publicació?
Com s'expressa en XPath la selecció de tots els llibres anteriors a l'any 2003, assumint que l'element 'any' conté l'any de publicació?
En una consulta XPath anidada, quin seria el primer pas per mostrar tots els títols de llibres de l'autor de 'TCP/IP Illustrated'?
En una consulta XPath anidada, quin seria el primer pas per mostrar tots els títols de llibres de l'autor de 'TCP/IP Illustrated'?
Quina diferència principal hi ha entre la sintaxi abreviada i la sintaxi complexa en XPath?
Quina diferència principal hi ha entre la sintaxi abreviada i la sintaxi complexa en XPath?
Quin eix XPath s'utilitza per seleccionar els nodes que són fills directes del node de context?
Quin eix XPath s'utilitza per seleccionar els nodes que són fills directes del node de context?
Si vols seleccionar tots els germans menors d'un node 'autor' en XPath utilitzant la sintaxi complexa, quin eix has d'utilitzar?
Si vols seleccionar tots els germans menors d'un node 'autor' en XPath utilitzant la sintaxi complexa, quin eix has d'utilitzar?
Quina de les següents funcions permet normalitzar els espais en blanc en una cadena de text?
Quina de les següents funcions permet normalitzar els espais en blanc en una cadena de text?
Com seleccionaries tots els atributs de tots els nodes en un document XML usant XPath?
Com seleccionaries tots els atributs de tots els nodes en un document XML usant XPath?
Quin eix en XPath retorna els nodes que apareixen abans del node de context en el document, excloent els ascendents, atributs i espais de noms?
Quin eix en XPath retorna els nodes que apareixen abans del node de context en el document, excloent els ascendents, atributs i espais de noms?
Considerant el document XML proporcionat, quina consulta XPath seleccionaria tots els títols dels llibres publicats per 'Addison-Wesley'?
Considerant el document XML proporcionat, quina consulta XPath seleccionaria tots els títols dels llibres publicats per 'Addison-Wesley'?
Si volguéssim seleccionar el penúltim llibre dins de l'element bib
, com ho faríem usant XPath?
Si volguéssim seleccionar el penúltim llibre dins de l'element bib
, com ho faríem usant XPath?
Suposem que tens un document XML on dins de cada llibre hi ha múltiples nodes keyword
. Com comptaries el nombre total de keyword
presents en tots els llibres?
Suposem que tens un document XML on dins de cada llibre hi ha múltiples nodes keyword
. Com comptaries el nombre total de keyword
presents en tots els llibres?
Tenint en compte que XPath no té funcions natives per a operacions complexes de string manipulation directament, si necessites revertir una cadena (p. ex., 'abc' a 'cba'), com ho faries sense utilitzar extensions externes des de XPath 1.0?
Tenint en compte que XPath no té funcions natives per a operacions complexes de string manipulation directament, si necessites revertir una cadena (p. ex., 'abc' a 'cba'), com ho faries sense utilitzar extensions externes des de XPath 1.0?
En XPath 1.0, si necessites determinar si existeix algun node book
que contingui un node author
amb un nom que comenci amb la lletra 'S', però sense utilitzar funcions d'extensió, i optimitzant per a la major eficiència possible (menys passos), com ho expressaries?
En XPath 1.0, si necessites determinar si existeix algun node book
que contingui un node author
amb un nom que comenci amb la lletra 'S', però sense utilitzar funcions d'extensió, i optimitzant per a la major eficiència possible (menys passos), com ho expressaries?
Quina expressió XPath seleccionaria el node que conté el nom del instituto?
Quina expressió XPath seleccionaria el node que conté el nom del instituto?
Si vols extreure només el text de la pàgina web del instituto, sense les etiquetes XML, quina expressió XPath utilitzaries?
Si vols extreure només el text de la pàgina web del instituto, sense les etiquetes XML, quina expressió XPath utilitzaries?
Quina expressió XPath retornaria una llista amb els noms de tots els ciclos formativos?
Quina expressió XPath retornaria una llista amb els noms de tots els ciclos formativos?
Per obtenir les sigles identificatives de cada ciclo formativo (l'atribut id
), quina expressió XPath és la correcta?
Per obtenir les sigles identificatives de cada ciclo formativo (l'atribut id
), quina expressió XPath és la correcta?
Com obtindries els anys de publicació dels decretos de títols dels ciclos formativos?
Com obtindries els anys de publicació dels decretos de títols dels ciclos formativos?
Quina expressió XPath selecciona tota la informació dels ciclos formativos de grado medio?
Quina expressió XPath selecciona tota la informació dels ciclos formativos de grado medio?
Per obtenir els noms dels ciclos formativos que són de grado superior, quina expressió XPath és l'adequada?
Per obtenir els noms dels ciclos formativos que són de grado superior, quina expressió XPath és l'adequada?
Com seleccionaries els noms dels ciclos formativos els decretos dels quals van ser publicats abans de l'any 2010?
Com seleccionaries els noms dels ciclos formativos els decretos dels quals van ser publicats abans de l'any 2010?
Quina de les següents consultes XPath retorna el primer element ciclo
dins de l'element ciclos
?
Quina de les següents consultes XPath retorna el primer element ciclo
dins de l'element ciclos
?
Si necessites seleccionar tots els nodes nombre
que són descendents de l'element ies
, independentment de la seva ubicació en l'estructura XML, quina expressió utilitzaries?
Si necessites seleccionar tots els nodes nombre
que són descendents de l'element ies
, independentment de la seva ubicació en l'estructura XML, quina expressió utilitzaries?
Com podries seleccionar tots els elements ciclo
que tenen un atribut grado
amb un valor que contingui la cadena 'io' (sense tenir en compte majúscules o minúscules)? Assumeix que uses XPath 2.0 o superior.
Com podries seleccionar tots els elements ciclo
que tenen un atribut grado
amb un valor que contingui la cadena 'io' (sense tenir en compte majúscules o minúscules)? Assumeix que uses XPath 2.0 o superior.
Si volguessis trobar tots els elements ciclo
que tinguin tant un atribut grado
amb valor 'Superior' com un element fill nombre
que contingui la paraula 'Web', com expressaries això en XPath?
Si volguessis trobar tots els elements ciclo
que tinguin tant un atribut grado
amb valor 'Superior' com un element fill nombre
que contingui la paraula 'Web', com expressaries això en XPath?
Com seleccionaries tots els nodes ciclo
que NO tenen un atribut id
definit?
Com seleccionaries tots els nodes ciclo
que NO tenen un atribut id
definit?
Si necessites obtenir el darrer element ciclo
dins de l'element ciclos
, quina de les següents expressions XPath és la correcta?
Si necessites obtenir el darrer element ciclo
dins de l'element ciclos
, quina de les següents expressions XPath és la correcta?
Si volguessis seleccionar el primer element nombre
que sigui fill d'un element ciclo
i que contingui exactament la cadena 'Administració de Sistemes Informàtics en Xarxa', com ho faries?
Si volguessis seleccionar el primer element nombre
que sigui fill d'un element ciclo
i que contingui exactament la cadena 'Administració de Sistemes Informàtics en Xarxa', com ho faries?
Si necessites seleccionar tots els elements ciclo
que tenen un element fill decretoTitulo
amb un atribut año
que sigui igual a l'any actual, com ho faries usant XPath 1.0 (sense funcions externes)? Assumeix que l'any actual és emmagatzemat a la variable $currentYear
.
Si necessites seleccionar tots els elements ciclo
que tenen un element fill decretoTitulo
amb un atribut año
que sigui igual a l'any actual, com ho faries usant XPath 1.0 (sense funcions externes)? Assumeix que l'any actual és emmagatzemat a la variable $currentYear
.
Suposem que vols obtenir tots els valors (sense repeticions) dels atributs grado
presents en els nodes ciclo
. Com ho faries amb XPath 1.0 sense utilitzar funcions d'extenció ni assumir cap ordre específic en els resultats?
Suposem que vols obtenir tots els valors (sense repeticions) dels atributs grado
presents en els nodes ciclo
. Com ho faries amb XPath 1.0 sense utilitzar funcions d'extenció ni assumir cap ordre específic en els resultats?
Si necessites comptar el nombre total de nodes nombre
que són fills dels nodes ciclo
dins del document XML, quina expressió XPath utilitzaries?
Si necessites comptar el nombre total de nodes nombre
que són fills dels nodes ciclo
dins del document XML, quina expressió XPath utilitzaries?
Suposem que vols concatenar els noms de tots els ciclos formatius que siguin de grau 'Superior', separats per una coma. Com ho faries amb XPath? (Assumeix XPath 2.0 o superior).
Suposem que vols concatenar els noms de tots els ciclos formatius que siguin de grau 'Superior', separats per una coma. Com ho faries amb XPath? (Assumeix XPath 2.0 o superior).
Tens un document XML massiu i necessites avaluar si almenys un dels nodes ciclo
compleix simultàniament les següents condicions: Que el seu atribut grado
contingui la lletra 'S' (sense importar majúscules o minúscules) i que el seu fill nombre
contingui la paraula 'Aplicacions'. Sense utilitzar funcions d'extensió i optimitzant al màxim l'eficiència de la consulta (menys passos), com ho expressaries?
Tens un document XML massiu i necessites avaluar si almenys un dels nodes ciclo
compleix simultàniament les següents condicions: Que el seu atribut grado
contingui la lletra 'S' (sense importar majúscules o minúscules) i que el seu fill nombre
contingui la paraula 'Aplicacions'. Sense utilitzar funcions d'extensió i optimitzant al màxim l'eficiència de la consulta (menys passos), com ho expressaries?
Flashcards
Què és XPath?
Què és XPath?
Llenguatge XML per accedir a informació específica en un document XML mitjançant el recorregut d'elements.
Direccionament XPath
Direccionament XPath
Cami de nodes que permet seleccionar un conjunt d'elements en un document XML.
nodo
en XPath
nodo
en XPath
Selecciona elements amb un nom específic.
⁄nodo
en XPath
⁄nodo
en XPath
Signup and view all the flashcards
nodo1/nodo2
en XPath
nodo1/nodo2
en XPath
Signup and view all the flashcards
nodo1//nodo2
en XPath
nodo1//nodo2
en XPath
Signup and view all the flashcards
//nodo
en XPath
//nodo
en XPath
Signup and view all the flashcards
@atributo
en XPath
@atributo
en XPath
Signup and view all the flashcards
*
en XPath
*
en XPath
Signup and view all the flashcards
text()
en XPath
text()
en XPath
Signup and view all the flashcards
Filtres amb [ ]
en XPath
Filtres amb [ ]
en XPath
Signup and view all the flashcards
text()
en XPath
text()
en XPath
Signup and view all the flashcards
|
(unió) en XPath
|
(unió) en XPath
Signup and view all the flashcards
position() = n
en XPath
position() = n
en XPath
Signup and view all the flashcards
last()
en XPath
last()
en XPath
Signup and view all the flashcards
exists()
en XPath
exists()
en XPath
Signup and view all the flashcards
name()
en XPath
name()
en XPath
Signup and view all the flashcards
Consultes XPath anidades
Consultes XPath anidades
Signup and view all the flashcards
Sintaxi abreviada XPath
Sintaxi abreviada XPath
Signup and view all the flashcards
Eixos en XPath
Eixos en XPath
Signup and view all the flashcards
/ies/nombre
/ies/nombre
Signup and view all the flashcards
/ies/web/text()
/ies/web/text()
Signup and view all the flashcards
/ies/ciclos/ciclo/nombre/text()
/ies/ciclos/ciclo/nombre/text()
Signup and view all the flashcards
/ies/ciclos/ciclo/@id
/ies/ciclos/ciclo/@id
Signup and view all the flashcards
/ies/ciclos/ciclo/decretoTitulo/@año
/ies/ciclos/ciclo/decretoTitulo/@año
Signup and view all the flashcards
/ies/ciclos/ciclo[grado="Medio"]
/ies/ciclos/ciclo[grado="Medio"]
Signup and view all the flashcards
/ies/ciclos/ciclo[grado="Superior"]/nombre
/ies/ciclos/ciclo[grado="Superior"]/nombre
Signup and view all the flashcards
/ies/ciclos/ciclo[decretoTitulo/@año < 2010]/nombre/text()
/ies/ciclos/ciclo[decretoTitulo/@año < 2010]/nombre/text()
Signup and view all the flashcards
Mostrar noms dels balls
Mostrar noms dels balls
Signup and view all the flashcards
Nom i places dels balls
Nom i places dels balls
Signup and view all the flashcards
Balls amb preu > 30
Balls amb preu > 30
Signup and view all the flashcards
Balls cars en euros
Balls cars en euros
Signup and view all the flashcards
Balls d'inici al gener
Balls d'inici al gener
Signup and view all the flashcards
Professors i sales
Professors i sales
Signup and view all the flashcards
Professors únics i sales
Professors únics i sales
Signup and view all the flashcards
Mitjana preus balls
Mitjana preus balls
Signup and view all the flashcards
Suma preus sala 1
Suma preus sala 1
Signup and view all the flashcards
Places Jesús Lozano
Places Jesús Lozano
Signup and view all the flashcards
Ingressos Laura Mendiola
Ingressos Laura Mendiola
Signup and view all the flashcards
Ingressos per ball de Jesús Lozano
Ingressos per ball de Jesús Lozano
Signup and view all the flashcards
Ingressos de 'Laura'
Ingressos de 'Laura'
Signup and view all the flashcards
Preus i descompte
Preus i descompte
Signup and view all the flashcards
Dades sense dates
Dades sense dates
Signup and view all the flashcards
Taula HTML balls i profes
Taula HTML balls i profes
Signup and view all the flashcards
Study Notes
Introducció a XPath
- XPath és un llenguatge XML per accedir a informació específica en un document XML, recorrent els seus elements.
- L'avaluació d'una expressió XPath implica buscar elements que compleixin el recorregut especificat.
- S'utilitza en consultes XQuery, transformacions XSLT o XSL-FO, rarament de forma aïllada.
- És una recomanació del W3C, amb versions com XPath 3.0, 2.0 i 1.0.
- Un document XML està format per nodes (elements) amb etiquetes i contingut (text i altres nodes), organitzats en arbre amb un únic node arrel.
Eines per gestionar XPath
- Disposa del software lliure BaseX per provar XPath.
- També es pot utilitzar l'eina online http://www.xpathtester.com/xpath.
Direccionament o localització
- El direccionament o localització és una ruta per seleccionar un conjunt de nodes en un document XML.
- El direccionament pot ser absolut (incloent el node arrel) o relatiu (començant des d'un node diferent).
Expressions d'adreçament XPath
node
: Element amb el nom "node"./node
: El node es troba a l'arrel del document.nodo1/nodo2
: nodo2 és fill directe de nodo1.nodo1//nodo2
: nodo2 és descendent de nodo1, amb possibles nodes intermedis.//nodo
: El node es troba a qualsevol nivell sota l'arrel.@atributo
: Atribut amb el nom "atributo".*
: Qualsevol element.@*
: Qualsevol atribut..
: Node actual..
: Node pare
Exemples d'ús
/bib/book/author
: Llista els títols dels llibres de la biblioteca.//author
: Llista els autors sense indicar la seva relació jeràrquica./bib/book/@id
: Llista els identificadors dels llibres.//@*
: Llista tots els atributs de qualsevol node.text()
: Retorna el text del node. Per exemple,/bib/book/author/text()
llista els títols dels llibres sense etiquetes.
Filtrar l'accés a elements
- Permet refinar la selecció de nodes mitjançant condicions expressades entre claudàtors
[]
. - Operadors disponibles:
and
,or
,not
,=
,!=
,<
,>
,<=
,>=
,to
(rang),+
,-
,*
,div
(divisió),mod
(residu),|
(unió).
Funcions XPath
- Funcions numèriques:
round()
,abs()
,floor()
,ceiling()
. - Funcions de cadena:
substring()
,starts-with()
,ends-with()
,contains()
,normalize-space()
,translate()
,string-length()
,upper-case()
,lower-case()
. - Funcions de posició d'elements:
position()
,last()
. - Funcions de nodes:
name()
,text()
,root()
,node()
,comment()
,processing-instruction()
,exists()
,empty()
. - Funcions d'agregació:
count()
,avg()
,max()
,min()
,sum()
.
Exemples de filtres
/bib/book/author | /bib/book/publisher
: Mostra autors i publicadors./bib/(book|dictionary)/author
: Mostra autors de llibres o diccionaris./bib/book[position()=2]
: Mostra el segon llibre./bib/book[position()=2 to 3]
: Mostra del segon al tercer llibre./bib/book[last()]
: Mostra l'últim llibre./bib/book[year<2003]/title
: Mostra títols de llibres anteriors a l'any 2003.
Consultes XPath anidades
- Implica incloure una consulta XPath dins la condició d'una altra.
- Exemple: trobar els títols dels llibres de l'autor de "TCP/IP Illustrated" requereix una consulta per determinar qui és l'autor.
/bib/book[title="TCP/IP Illustrated"]/author/text()
: Troba l'autor del llibre./bib/book[author=/bib/book[title="TCP/IP Illustrated"]/author/text()]/title
: Troba els títols dels llibres d'aquest autor.
Sintaxi abreujada i complexa
- Sintaxi abreujada: més senzilla i fàcil de llegir.
- Sintaxi complexa: utilitza eixos per nomenar els elements.
Eixos
- Són expressions per accedir a parts de l'arbre XML segons les relacions entre nodes.
self::
: Retorna el node de context.child::
: Retorna els fills del node de context.parent::
: Retorna el pare del node de context.ancestor::
: Retorna els avantpassats del node de context.ancestor-or-self::
: Retorna els avantpassats i el node de context.descendant::
: Retorna els descendents del node de context.descendant-or-self::
: Retorna els descendents i el node de context. Equivalent a//
.following::
: Retorna els nodes que apareixen després del node de context (exceptuant descendents, atributs i espais de noms).preceding::
: Retorna els nodes que apareixen abans del node de context (exceptuant ascendents, atributs i espais de noms).following-sibling::
: Retorna els germans menors del node de context.preceding-sibling::
: Retorna els germans majors del node de context.attribute::
: Atributs del node de context.namespace::
: Espai de noms del node de context.
Exemples de sintaxi complexa
/child::bib/child::book/child::title
(equivalent a/bib/book/title
): Llista els títols dels llibres./bib/book/author/following-sibling::*
: Llista els germans menors del segon autor./bib/descendant::year
(equivalent a/bib//year
): Llista els descendents amb el nom "year".
Consultes XPath Simples - Exemple Pràctic
- Donat un document XML d'un institut (
IES TicArte
):- L'expressió
/ies/nombre
mostra el nom de l'institut. - L'expressió
/ies/web/text()
mostra la pàgina web de l'institut sense etiquetes. - L'expressió
/ies/ciclos/ciclo/nombre/text()
mostra el nom dels cicles formatius sense etiquetes. - L'expressió
/ies/ciclos/ciclo/@id
mostra les sigles dels cicles formatius. - L'expressió
/ies/ciclos/ciclo/decretoTitulo/@año
mostra els anys de publicació dels decrets dels cicles formatius. - L'expressió
/ies/ciclos/ciclo[grado="Medio"]
mostra tota la informació dels cicles formatius de grau mitjà. - L'expressió
/ies/ciclos/ciclo[grado="Superior"]/nombre
mostra el nom dels cicles formatius de grau superior. - L'expressió
/ies/ciclos/ciclo[decretoTitulo/@año<2010]/nombre/text()
mostra el nom dels cicles formatius publicats abans del 2010 sense etiquetes.
- L'expressió
Consultes XQuery - Exemple Pràctic
- Document XML exemple conté informació sobre classes de balls (nom, preu, places, dates, professor, sala).
A continuació es presenten exemples de consultes XQuery sobre aquest document:
losbailes
: Retorna una llista amb el nom de cada ball.losbailes
: Retorna una llista amb el nom del ball seguit del número de places entre paréntesis.- Retorna el nom dels balls amb un preu superior a 30 euros.
- Retorna el nom dels balls amb un preu superior a 30 euros, mostrant la moneda "euro".
- Retorna el nom i la data d'inici dels balls que comencen al gener (data que contingui "/1/").
- Retorna el nom dels professors i la sala on fan classe; ordenats per sala.
- Retorna el nom de cada professor (sense repeticions) amb totes les sales on fa classe i ordenats per nom.
- Retorna la mitjana dels preus de tots els balls.
- Retorna la suma dels preus dels balls que tenen lloc a la sala 1.
- Calcula les places totals que oferta el professor "Jesus Lozano".
- Calcula els guanys de la professora "Laura Mendiola" si omplís totes les places de la seva classe (sabent que només en té una).
- Calcula els guanys del professor "Jesus Lozano" per cada ball si omplís tots els llocs.
- Calcula els guanys de la professora "Laura" (sense saber el cognom) si s'omplissin totes les places del seu ball.
- Mostra nom del ball, preu i preu amb descompte del 15% per a families nombroses, ordenats per nom del ball.
- Mostra totes les dades de cada ball, excepte les dates d'inici i fi.
- Mostra el nom dels balls i el professor en una taula HTML.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.