Prova de buscar la definició a aquest portal del flux RSS:
Amb aquest codi a dins de l'etiqueta head es publica la URL del teu portal per als lectors RSS:
<link rel="alternate" type="application/rss+xml" title="Subscriure's a novetats" href="http://your-site.com/your-feed.rss" />
També es pot fer el mateix amb atom:
<link rel="alternate" type="application/atom+xml" title="Subscriure's a novetats" href="http://your-site.com/your-feed.xml" />
Pots validar el teu feed a W3C.
Expressions del camí:
Condicions:
Funcions incloses:
Requisit previ: Java 8 i fitxer jar d'instal·lació de eXist-db.
XQuery és un llenguatge per trobar i extreure elements i atributs de documents XML.
Està basat en XPath per a la navegació de l'arbre XML.
Utilitza la funció doc() per referir-se a l'arxiu XML del catàleg de la BBDD:
doc("books.xml")
Al que s'afegeix el XPath per a fer la navegació:
doc("books.xml")/bookstore/book/title
FLWOR és l'acrònim de FOR, LET, WHERE, ORDER BY, RETURN.
És una expressió de XQuery que permet fer consultes amb un cert format dins d'un document XML.
Per exemple:
for $d in doc("depts.xml")//deptno
let $e := doc("emps.xml")//employee[deptno = $d]
where count($e) >= 10
order by avg($e/salary) descending
return
<big-dept>
{ $d,
<headcount>{count($e)}</headcount>,
<avgsal>{avg($e/salary)}</avgsal>
}
</big-dept>
Com es pot veure, hi ha el FLWOR barrejat amb XML.
Veure la Instal·lació de eXist-db.
1) Aneu a l'aplicació web de eXist-db i cliqueu 'Open eXide'.
2) A dins de l'eXide, aneu a una pestanya nova (New) per executar una XQuery.
La primera query:
"Hello World!"
Exemple text:
let $message := 'Hello World!'
return
$message
Exemple XML:
let $message := 'Hello World!'
return
<results>
<message>{$message}</message>
</results>
Una query per al document students.xml:
doc("/db/testdb/students.xml")/class/student
En aquesta query, doc("/db/testdb/students.xml") fa referència a l'arxiu que has pujat, amb la ruta absoluta. La resta és només una query XPath.
També podeu fer una versió FLWOR:
let $students := doc("/db/testdb/students.xml")/class/student
return $students
També podeu utilitzar un bucle:
for $student in
doc("/db/testdb/students.xml")/class/student
return $student
O utilitzar una variable:
for $student in doc("/db/testdb/students.xml")/class/student
let $firstname := $student/firstname
return $firstname
O assignar més d'una variable:
for $student in doc("/db/testdb/students.xml")/class/student
let $firstname := $student/firstname
let $lastname := $student/lastname
let $rollno := string($student/@rollno)
let $phrase := concat($firstname, " ", $lastname, " has number ", $rollno)
return <test>{$phrase}</test>
O també, i afegint una condició:
for $student in doc("/db/testdb/students.xml")/class/student
let $firstname := $student/firstname
let $lastname := $student/lastname
let $rollno := string($student/@rollno)
where $rollno != "393"
return <test number="{$rollno}">{data($firstname)} {data($lastname)}</test>
La funció data() fa el mateix que utilitzar text() a la query XPath.
Amb if-then-else i utilitant una funció per convertir a integer, i amb un element al voltant:
<items> {
for $student in doc("/db/testdb/students.xml")/class/student
let $name := concat($student/firstname, " ", $student/lastname)
let $marks := number($student/marks)
order by $name
return if ($marks >= 90)
then <better>{$name}</better>
else <worse>{$name}</worse>
} </items>
Tenim una extensió de eXist-db que permet modificar i esborrar elements i atributs.
Per a insertar:
update insert (
<student rollno="542">
<firstname>Joshua</firstname>
<lastname>Tree</lastname>
<nickname>joshua</nickname>
<marks>66</marks>
</student> ) into doc("/db/testdb/students.xml")/class
Per a actualitzar un valor:
for $student in doc("/db/testdb/students.xml")/class/student
where $student/firstname = "Joshua"
return (update value $student/marks with "77")
Per a esborrar un element:
for $student in doc("/db/testdb/students.xml")/class/student
where $student/firstname = "Joshua"
return (update delete $student)