3. Επερώτηση XML Εγγράφων: Η Γλώσσα XPath

Σχετικά έγγραφα
5. Επερώτηση XML Εγγράφων: Εισαγωγή στη Γλώσσα XQuery

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

ΝΤUA. Τεχνολογία Πολυμέσων

ΝΤUA. Τεχνολογία Πολυμέσων

Μοντέλο. για ημι-δομημένα μημ δεδομένα. Ημι-δομημένα δεδομένα XML DTD XML Schema

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

Σημασιολογικός Ιστός (Semantic Web) - XML

Εισαγωγή XML: Extensible Markup Language Ορίστηκε από το WWW Consortium (W3C) ως συµπλήρωµα της HTML. εν σχεδιάστηκε για βάσεις δεδοµένων αλλά για δια

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

Αναπαράςταςθ Γνώςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 4 ο XPath

Βάσεις ιαδικτύου. Θέματα. Εισαγωγή στην XML. Ευρετήρια για την Ανάκτηση Κειμένων. Ο αλγόριθμος HITS. είναι η XML. Παράδειγμα XML

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 5: XML. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Σημασιολογικός Ιστός (Semantic Web) - XML

Δομημένη Αναπαράσταση Πληροφοριών

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language)

10. XML Αποθήκευση Δεδομένων: Relational vs. Native

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ιαχείριση εδομένων στον Παγκόσμιο Ιστό

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Γλωσσική Τεχνολογία. HTML/XML Processing HTTP Services

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Μια εισαγωγή στην XSL

9. Κόκκινα-Μαύρα Δέντρα

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

Εισαγωγή(στη(γλώσσα(XML(

BibConvert μετατροπές LOM

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Ο ΗΓΟΣ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΚΜΗΡΙΩΣΗΣ ΚΑΙ ΙΑΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑΣ

XML related standards

ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Εκτέλεση ερωτήσεων XPath µε τη χρήση πολυδιάστατης αναζήτησης

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. ΗΥ-561 Διαχείριση Δεδομένων στο Παγκόσμιο Ιστό Βασίλης Χριστοφίδης

p-xquery: Επέκταση της Γλώσσας Ερωτήσεων XQuery για Υποστήριξη Ερωτήσεων µε Μερικό Καθορισµό οµικών Περιορισµών ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.

Σημασιολογικός Ιστός (Semantic Web) - XML

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εισαγωγή στην Επιστήμη και Τεχνολογία των Υπηρεσιών

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

Αθανασούλας Χαράλαµπος ράκος Παύλος Κίρτσιος Νικόλαος

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-561 ιαχείριση εδοµένων στο Παγκόσµιο Ιστό Βασίλης Χριστοφίδης

κεφάλαιο 3 Η ΓΛΩΣΣΑ XML Εισαγωγή

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

Εργαστήριο Σημασιολογικού Ιστού

ΜΕΡΟΣ II: XML DTD XML Namespaces XML Schema

Σημασιολογικός Ιστός (Semantic Web) - XML

Φροντιστήριο 1ο Εισαγωγή στο FLEX. Flex. Regular Expressions (1/4)

Διάθρωση. HΥ351 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address>

ΔΟΜΗΜΕΝΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΛΗΡΟΦΟΡΙΩΝ

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή σε HTML και CSS. Παναγιώτης Τσαρχόπουλος

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό

4. Συνδεδεμένες Λίστες

ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat

Δέντρα Απόφασης (Decision(

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Εργαστήριο Σημασιολογικού Ιστού

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομημένη Αναπαράσταση Πληροφοριών

Εισαγωγή στην γλώσσα προγραμματισμού C

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

ΗΥ360 Αρχεία και Βάσεις εδοµένων

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML. Decode, ISSEL. Θεοδόσης Σουργκούνης Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου

Semantic-based Querying of Tree-Structured Data. Οργάνωση εδοµένων µε ενδρικές οµές

Πληροφορική 2. Αλγόριθμοι

ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ. ΗΥ240 - Παναγιώτα Φατούρου 1

Σημασιολογικός Ιστός (Semantic Web) - XML

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Ο ΗΓΟΣ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΚΜΗΡΙΩΣΗΣ ΚΑΙ ΙΑΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑΣ

ακολουθία (sequence)

Μαθηματικά Λογισμικά και Γλώσσες Αναπαράστασης Γνώσης

ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011

Εργαστήριο Σημασιολογικού Ιστού

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY340, 2009 Α. Σαββίδης Slide 2 / 26. HY340, 2009 Α. Σαββίδης Slide 3 / 26. HY340, 2009 Α. Σαββίδης Slide 4 / 26

Σχεδίαση και Ανάπτυξη Ιστότοπων

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 6: XSL. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Συνόψεις για Δεδομένα XML με Ετερογενές Περιεχόμενο

Εισαγωγή στην επιστήμη των υπολογιστών. Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΑΝΑΛΥΤΗ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

Μεταδεδομένα στο Ψηφιακό περιβάλλον

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 5 ο : Αλγόριθµοι Σύγκρισης Ακολουθιών Βιολογικών εδοµένων

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Επαλήθευση και Βελτιστοποίηση Συστήµατος ιαχείρισης XML Εγγράφων στη Γλώσσα CLIPS

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Transcript:

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Επερώτηση XML Εγγράφων: Η Γλώσσα XPath ιαχείριση εδομένων στον Παγκόσμιο Ιστό Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων ευτέρα 17 Οκτ 2016

Τι Είναι η XPath; Η XPath είναι μια σύνταξη για επιλογή τμημάτων ενός XML εγγράφου Ο τρόπος που η XPath περιγράφει μονοπάτια σε elements είναι παρόμοιος με τον τρόπο που ένα λειτουργικό σύστημα περιγράφει μονοπάτια σε αρχεία H XPath είναι σχεδόν μια μικρή γλώσσα προγραμματισμού Έχει συναρτήσεις, ελέγχους και εκφράσεις H XPath είναι W3C standard H XPath δεν είναι γραμμένη σε XML, αλλά χρησιμοποιείται ευρέως στην XSLT Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 2

XPath Expressions Ευέλικτος συμβολισμός για την πλοήγηση σε δένδρα Μια βασική τεχνολογία που χρησιμοποιείται ευρέως Μοναδικότητα και scope στο XML Schema Pattern matching και επιλογή στην XSLT Συσχετίσεις σε XLink και σε XPointer XLink: Μια XML markup γλώσσα που επιτρέπει τη δημιουργία εσωτερικών και εξωτερικών συνδέσμων σε XML έγγραφα, καθώς και η συσχέτιση μεταδεδομένων με τους συνδέσμους XPointer: Μια γλώσσα για τον εντοπισμό τμημάτων από URI στο internet τα οποία είναι σε μορφή XML Υπολογισμοί τιμών σε XSLT και XQuery Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 3

Location Paths Ένα location path αποτελεί μια έκφραση που αποτιμάται σε μια ακολουθία κόμβων (sequence of nodes) σχετικά με τον context node Η ακολουθία είναι ταξινομημένη με βάση τη σειρά εμφάνισης στο XML έγγραφο Η ακολουθία δεν περιέχει ποτέ διπλότυπα Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 4

Location Steps Ένα location path αποτελείται από μια ακολουθία από steps Ένα location step περιέχει Έναν άξονα (axis) Ένα έλεγχο κόμβων (nodetest) Ορισμένα κατηγορήματα (predicates) axis :: nodetest [Exp 1 ] [Exp 2 ] Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 5

Αποτίμηση ενός Location Path Ένα step αντιστοιχίζει έναν context node σε μια ακολουθία κόμβων Επίσης, αντιστοιχίζει ακολουθίες κόμβων (Α) σε ακολουθίες κόμβων (Β) Κάθε κόμβος της Α χρησιμοποιείται σαν context node Και αντικαθίσταται από το αποτέλεσμα Β που προκύπτει εφαρμόζοντας το step Τέλος, το path εφαρμόζει κάθε step ένα ένα Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 6

Παράδειγμα Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 7

Παράδειγμα Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 8

Παράδειγμα Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 9

Παράδειγμα Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 10

Παράδειγμα Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 11

Contexts To context μιας XPath αποτίμησης αποτελείται από Έναν context node (ένας κόμβος του XML δένδρου) Ένα context position και size (δύο μη αρνητικοί ακέραιοι) Ένα σύνολο από variable bindings Μια βιβλιοθήκη συναρτήσεων (function library) Ένα σύνολο από δηλώσεις namespace Η εφαρμογή καθορίζει το αρχικό context Εάν το path ξεκινά με / τότε Το αρχικό context είναι η ρίζα (root) Τα αρχικά size και position ισούνται με 1 Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 12

Άξονες (Axes) Ένας άξονας (axis) είναι μια ακολουθία από κόμβους Ο άξονας αποτιμάται σε σχέση με τον context node H XPath υποστηρίζει τους ακόλουθους άξονες child descendant parent ancestor following-sibling preceding-sibling attribute following preceding self descendant-or-self ancestor-or-self Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 13

Κατευθύνσεις Αξόνων (Axes Directions) Κάθε άξονας έχει μια κατεύθυνση Forwards σημαίνει σειρά εγγράφου Child, descendant, following-sibling, following, self, descendant-or-self Backwards σημαίνει αντίστροφη σειρά εγγράφου Parent, ancestor, preceding-sibling, preceding Stable, αλλά εξαρτάται από την υλοποίηση Attribute Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 14

Parent Axis Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 15

Child Axis Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 16

Descendant Axis Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 17

Ancestor Axis Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 18

Following-sibling Axis Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 19

Preceding-sibling Axis Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 20

Following Axis Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 21

Preceding Axis Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 22

Έλεγχοι Κόμβων (Node-tests) text() comment() processing-instruction() node() * QName (qualified name) A name optionally qualified with a namespace prefix Π.χ. para ή fo:block *:NCName (non-colonized name) NCName:* Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 23

Κατηγορήματα (Predicates) Γενικές XPath εκφράσεις που ορίζουν περαιτέρω συνθήκες που πρέπει να ικανοποιούν οι επιλεγμένοι κόμβοι Σαν ένα φίλτρο που εφαρμόζεται στο node-set Παραδείγματα [@title='introduction'] κόμβοι με attribute title με τιμή Introduction [position()!= 1] κόμβοι που δεν είναι πρώτοι στο ήδη επιλεγμένο node-set Αποτιμώνται με βάση τον τρέχον κόμβο ως context Το αποτέλεσμα γίνεται boolean Ένας αριθμός δίνει true όταν ισούται με την context position Ένα string δίνει true όταν δεν είναι κενό Μια ακολουθία δίνει true εφόσον δεν είναι κενή Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 24

Abbreviations (none) @ είναι ισοδύναμο με child:: είναι ισοδύναμο με attribute::. είναι ισοδύναμο με self::node().//x είναι ισοδύναμο με self::node()/descendant-or-self::node()/child::x.. είναι ισοδύναμο με parent::node()../x είναι ισοδύναμο με parent::node()/child::x // είναι ισοδύναμο με /descendant-or-self::node()/ //X είναι ισοδύναμο με /descendant-or-self::node()/child::x Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 25

Παραδείγματα XPath

Γενικές Εκφράσεις (General Expressions) Κάθε έκφραση αποτιμάται σε μια ακολουθία από Ατομικές τιμές Κόμβους Ατομικές τιμές μπορεί να είναι Αριθμοί Booleans Unicode strings Datatypes που ορίζονται στο XML Schema Οι κόμβοι έχουν αναγνωριστικό (identity) Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 27

Παράδειγμα DTD <!DOCTYPE BARS [ <!ELEMENT BARS (BAR*, BEER*)> <!ELEMENT BAR (PRICE+)> <!ATTLIST BAR name ID #REQUIRED> <!ELEMENT PRICE (#PCDATA)> <!ATTLIST PRICE thebeer IDREF #REQUIRED> <!ELEMENT BEER EMPTY> <!ATTLIST BEER name ID #REQUIRED> <!ATTLIST BEER soldby IDREFS #IMPLIED> ]> Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 28

Παράδειγμα XML Εγγράφου <BARS> <BAR name = JoesBar > <PRICE thebeer = Bud >2.50</PRICE> <PRICE thebeer = Miller >3.00</PRICE> </BAR> <BEER name = Bud soldby = JoesBar SuesBar /> </BARS> Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 29

Path Descriptors Απλοί path descriptors είναι ακολουθίες από tags που χωρίζονται από slashes (/) Εάν ο descriptor ξεκινά με / Τότε το path ξεκινά από τη root και έχει όλα τα tags με τη σειρά που εμφανίζονται Εάν ο descriptor ξεκινά με // Τότε το path μπορεί να ξεκινά από οπουδήποτε Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 30

Παράδειγμα: /BARS/BAR/PRICE <BARS> <BAR name = JoesBar > <PRICE thebeer = Bud >2.50</PRICE> <PRICE thebeer = Miller >3.00</PRICE> </BAR> <BEER name = Bud soldby = JoesBar SuesBar /> </BARS> Το /BARS/BAR/PRICE περιγράφει το σύνολο αυτών των δύο PRICE elements καθώς και άλλων PRICE elements για οποιοδήποτε άλλο BAR Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 31

Παράδειγμα: //PRICE <BARS> <BAR name = JoesBar > <PRICE thebeer = Bud >2.50</PRICE> <PRICE thebeer = Miller >3.00</PRICE> </BAR> <BEER name = Bud soldby = JoesBar SuesBar /> </BARS> Το //PRICE περιγράφει τα ίδια PRICE elements, αλλά μόνο επειδή το DTD επιβάλλει σε κάθε PRICE να εμφανίζεται εντός των BARS και BAR Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 32

Wild-Card * Η χρήση του αστερίσκου (*) στη θέση ενός tag υποδηλώνει την ύπαρξη οποιουδήποτε tag Παράδειγμα /*/*/PRICE αντιστοιχεί σε όλα τα PRICE αντικείμενα στο τρίτο επίπεδο nesting Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 33

Παράδειγμα: /BARS/* <BARS> <BAR name = JoesBar > <PRICE thebeer = Bud >2.50</PRICE> <PRICE thebeer = Miller >3.00</PRICE> </BAR> <BEER name = Bud soldby = JoesBar SuesBar /> </BARS> Το /BARS/* περιγράφει όλα τα BAR και BEER elements, όπως αυτά που φαίνονται εδώ Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 34

Attributes Στην XPath, αναφερόμαστε σε attributes βάζοντας το σύμβολο @ πριν το όνομα του attribute Τα attributes ενός tag μπορούν να εμφανίζονται σε paths, σαν να ήταν εμφωλιασμένα στο ίδιο tag Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 35

Παράδειγμα: /BARS/*/@name <BARS> <BAR name = JoesBar > <PRICE thebeer = Bud >2.50</PRICE> <PRICE thebeer = Miller >3.00</PRICE> </BAR> <BEER name = Bud soldby = JoesBar SuesBar /> </BARS> Το /BARS/*/@name επιλέγει όλα τα name attributes των άμεσων subelements του BARS element Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 36

Selection Conditions (Συνθήκες Επιλογής) Μια συνθήκη επιλογής εντός [ ] μπορεί να ακολουθεί ένα tag Σε αυτή την περίπτωση Μόνο μονοπάτια που έχουν αυτό το tag και επιπλέον ικανοποιούν τη συνθήκη, εμπεριέχονται στο αποτέλεσμα της path expression Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 37

Παράδειγμα: Συνθήκη Επιλογής /BARS/BAR/PRICE[text() < 2.75] <BARS> <BAR name = JoesBar > <PRICE thebeer = Bud >2.50</PRICE> <PRICE thebeer = Miller >3.00</PRICE> </BAR> Η συνθήκη ότι το PRICE είναι μικρότερο του 2.75 επιστρέφει αυτή την μπύρα κι όχι τη Miller Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 38

Παράδειγμα: Attribute σε Συνθήκη Επιλογής /BARS/BAR/PRICE[@theBeer = Miller ] <BARS> <BAR name = JoesBar > <PRICE thebeer = Bud >2.50</PRICE> <PRICE thebeer = Miller >3.00</PRICE> </BAR> Επιλέγεται αυτό το element, καθώς και οποιοδήποτε άλλο PRICE element για τη Miller Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 39

Axes (Άξονες) Γενικά, οι path expressions μάς επιτρέπουν να ξεκινούμε από τη root (ρίζα) και να εκτελούμε βήματα (steps) για να βρούμε μια ακολουθία κόμβων σε κάθε βήμα Σε κάθε βήμα, μπορούμε να ακολουθούμε έναν από τους διαθέσιμους άξονες Ο default άξονας είναι child:: Σημαίνει: πήγαινε σε όλα τα παιδιά του τρέχοντος συνόλου κόμβων Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 40

Παράδειγμα: Axes /BARS/BEER είναι συντομογραφία για το /BARS/child::BEER @ είναι συντομογραφία για το attribute:: άξονα Έτσι, το /BARS/BEER[@name = Bud ] είναι συντομογραφία για το /BARS/BEER[attribute::name = Bud ] Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 41

Άλλο Παράδειγμα XML Εγγράφου <?xml version="1.0" encoding="utf-8"?> <Catalog> <Album artist="the Last Shadow Puppets" title="the Age Of The Understatement"> <Track rating="4" length="p3m7s">the Age Of The Understatement</Track> <Track rating="3" length="p2m18s">standing Next To Me</Track> <Track rating="5" length="p2m26s">calm Like You</Track> <Track rating="3" length="p3m38s">separate and Ever Deadly</Track> <Track rating="2" length="p2m37s">the Chamber</Track> <Track rating="3" length="p2m44s">only The Truth</Track> </Album> <Album artist="kings Of Leon" title="because Of The Times"> <Track rating="4" length="p7m10s">knocked Up</Track> <Track rating="2" length="p2m57s">charmer</track> <Track rating="3" length="p3m21s">on Call</Track> <Track rating="4" length="p3m09s">mcfearless</track> <Track rating="1" length="p3m59s">black Thumbnail</Track> </Album> </Catalog> Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 42

Όλα τα Albums: /Catalog/Album <?xml version="1.0" encoding="utf-8"?> <Catalog> <Album artist="the Last Shadow Puppets" title="the Age Of The Understatement"> <Track rating="4" length="p3m7s">the Age Of The Understatement</Track> <Track rating="3" length="p2m18s">standing Next To Me</Track> <Track rating="5" length="p2m26s">calm Like You</Track> <Track rating="3" length="p3m38s">separate and Ever Deadly</Track> <Track rating="2" length="p2m37s">the Chamber</Track> <Track rating="3" length="p2m44s">only The Truth</Track> </Album> <Album artist="kings Of Leon" title="because Of The Times"> <Track rating="4" length="p7m10s">knocked Up</Track> <Track rating="2" length="p2m57s">charmer</track> <Track rating="3" length="p3m21s">on Call</Track> <Track rating="4" length="p3m09s">mcfearless</track> <Track rating="1" length="p3m59s">black Thumbnail</Track> </Album> </Catalog> Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 43

To attribute artist για όλα τα Albums /Catalog/Album/@artist <?xml version="1.0" encoding="utf-8"?> <Catalog> <Album artist="the Last Shadow Puppets" title="the Age Of The Understatement"> <Track rating="4" length="p3m7s">the Age Of The Understatement</Track> <Track rating="3" length="p2m18s">standing Next To Me</Track> <Track rating="5" length="p2m26s">calm Like You</Track> <Track rating="3" length="p3m38s">separate and Ever Deadly</Track> <Track rating="2" length="p2m37s">the Chamber</Track> <Track rating="3" length="p2m44s">only The Truth</Track> </Album> <Album artist="kings Of Leon" title="because Of The Times"> <Track rating="4" length="p7m10s">knocked Up</Track> <Track rating="2" length="p2m57s">charmer</track> <Track rating="3" length="p3m21s">on Call</Track> <Track rating="4" length="p3m09s">mcfearless</track> <Track rating="1" length="p3m59s">black Thumbnail</Track> </Album> </Catalog> Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 44

Όλα τα Tracks για όλα τα Albums /Catalog/Album/Track <?xml version="1.0" encoding="utf-8"?> <Catalog> <Album artist="the Last Shadow Puppets" title="the Age Of The Understatement"> <Track rating="4" length="p3m7s">the Age Of The Understatement</Track> <Track rating="3" length="p2m18s">standing Next To Me</Track> <Track rating="5" length="p2m26s">calm Like You</Track> <Track rating="3" length="p3m38s">separate and Ever Deadly</Track> <Track rating="2" length="p2m37s">the Chamber</Track> <Track rating="3" length="p2m44s">only The Truth</Track> </Album> <Album artist="kings Of Leon" title="because Of The Times"> <Track rating="4" length="p7m10s">knocked Up</Track> <Track rating="2" length="p2m57s">charmer</track> <Track rating="3" length="p3m21s">on Call</Track> <Track rating="4" length="p3m09s">mcfearless</track> <Track rating="1" length="p3m59s">black Thumbnail</Track> </Album> </Catalog> Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 45

Όλα τα Albums του Kings of Leon <?xml version="1.0" encoding="utf-8"?> <Catalog> <Album artist="the Last Shadow Puppets" title="the Age Of The Understatement"> <Track rating="4" length="p3m7s">the Age Of The Understatement</Track> <Track rating="3" length="p2m18s">standing Next To Me</Track> <Track rating="5" length="p2m26s">calm Like You</Track> <Track rating="3" length="p3m38s">separate and Ever Deadly</Track> <Track rating="2" length="p2m37s">the Chamber</Track> <Track rating="3" length="p2m44s">only The Truth</Track> </Album> <Album artist="kings Of Leon" title="because Of The Times"> <Track rating="4" length="p7m10s">knocked Up</Track> <Track rating="2" length="p2m57s">charmer</track> <Track rating="3" length="p3m21s">on Call</Track> <Track rating="4" length="p3m09s">mcfearless</track> <Track rating="1" length="p3m59s">black Thumbnail</Track> </Album> </Catalog> /Catalog/Album[@artist= Kings of Leon ] Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 46

Όλα τα Tracks σε όλα τα Albums του Kings of Leon <?xml version="1.0" encoding="utf-8"?> <Catalog> <Album artist="the Last Shadow Puppets" title="the Age Of The Understatement"> <Track rating="4" length="p3m7s">the Age Of The Understatement</Track> <Track rating="3" length="p2m18s">standing Next To Me</Track> <Track rating="5" length="p2m26s">calm Like You</Track> <Track rating="3" length="p3m38s">separate and Ever Deadly</Track> <Track rating="2" length="p2m37s">the Chamber</Track> <Track rating="3" length="p2m44s">only The Truth</Track> </Album> <Album artist="kings Of Leon" title="because Of The Times"> <Track rating="4" length="p7m10s">knocked Up</Track> <Track rating="2" length="p2m57s">charmer</track> <Track rating="3" length="p3m21s">on Call</Track> <Track rating="4" length="p3m09s">mcfearless</track> <Track rating="1" length="p3m59s">black Thumbnail</Track> </Album> </Catalog> /Catalog/Album[@artist= Kings of Leon ]/Track Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 47

Το Δεύτερο Album /Catalog/Album[2] <?xml version="1.0" encoding="utf-8"?> <Catalog> <Album artist="the Last Shadow Puppets" title="the Age Of The Understatement"> <Track rating="4" length="p3m7s">the Age Of The Understatement</Track> <Track rating="3" length="p2m18s">standing Next To Me</Track> <Track rating="5" length="p2m26s">calm Like You</Track> <Track rating="3" length="p3m38s">separate and Ever Deadly</Track> <Track rating="2" length="p2m37s">the Chamber</Track> <Track rating="3" length="p2m44s">only The Truth</Track> </Album> <Album artist="kings Of Leon" title="because Of The Times"> <Track rating="4" length="p7m10s">knocked Up</Track> <Track rating="2" length="p2m57s">charmer</track> <Track rating="3" length="p3m21s">on Call</Track> <Track rating="4" length="p3m09s">mcfearless</track> <Track rating="1" length="p3m59s">black Thumbnail</Track> </Album> </Catalog> Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 48

Όλα τα Tracks με rating > 2 <?xml version="1.0" encoding="utf-8"?> <Catalog> <Album artist="the Last Shadow Puppets" title="the Age Of The Understatement"> <Track rating="4" length="p3m7s">the Age Of The Understatement</Track> <Track rating="3" length="p2m18s">standing Next To Me</Track> <Track rating="5" length="p2m26s">calm Like You</Track> <Track rating="3" length="p3m38s">separate and Ever Deadly</Track> <Track rating="2" length="p2m37s">the Chamber</Track> <Track rating="3" length="p2m44s">only The Truth</Track> </Album> <Album artist="kings Of Leon" title="because Of The Times"> <Track rating="4" length="p7m10s">knocked Up</Track> <Track rating="2" length="p2m57s">charmer</track> <Track rating="3" length="p3m21s">on Call</Track> <Track rating="4" length="p3m09s">mcfearless</track> <Track rating="1" length="p3m59s">black Thumbnail</Track> </Album> </Catalog> /Catalog/Album/Track[@rating > 2] Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 49

Το text όλων των Tracks <?xml version="1.0" encoding="utf-8"?> <Catalog> <Album artist="the Last Shadow Puppets" title="the Age Of The Understatement"> <Track rating="4" length="p3m7s">the Age Of The Understatement</Track> <Track rating="3" length="p2m18s">standing Next To Me</Track> <Track rating="5" length="p2m26s">calm Like You</Track> <Track rating="3" length="p3m38s">separate and Ever Deadly</Track> <Track rating="2" length="p2m37s">the Chamber</Track> <Track rating="3" length="p2m44s">only The Truth</Track> </Album> <Album artist="kings Of Leon" title="because Of The Times"> <Track rating="4" length="p7m10s">knocked Up</Track> <Track rating="2" length="p2m57s">charmer</track> <Track rating="3" length="p3m21s">on Call</Track> <Track rating="4" length="p3m09s">mcfearless</track> <Track rating="1" length="p3m59s">black Thumbnail</Track> </Album> </Catalog> /Catalog/Album/Track/text() Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 50

Πηγές Αναφοράς XPath http://www.w3.org/tr/xpath/ http://www.w3.org/tr/xpath20/ http://xpathvisualizer.codeplex.com/ http://www.liquid-technologies.com/xpath- Tutorial.aspx Διαχ.Δεδομένων στον ΠΙ, 7ο Εξάμηνο 51