Άξονα XPath (Axes)

XML Παράδειγμα Έγγραφο

Θα χρησιμοποιήσουμε αυτό το XML έγγραφο ως παράδειγμα παρακάτω:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

άξονας XPath

ο άξονας μπορεί να ορίσει ένα σύνολο κόμβων που σχετίζονται με τον τρέχοντα κόμβο. τέλος
ονομασία άξονα ancestor
επιλέγουμε όλους τους προγόνους του τρέχοντος κόμβου (γονικό, παππούς κ.λπ.). ancestor-or-self
επιλέγουμε όλους τους προγόνους του τρέχοντος κόμβου (γονικό, παππούς κ.λπ.) και τον ίδιο τον κόμβο. επιλέγουμε όλες τις ιδιότητες του τρέχοντος κόμβου.
attribute επιλέγουμε όλους τους υπονομάτες που είναι παιδιά του τρέχοντος κόμβου.
child descendant
επιλέγουμε όλους τους απογόνους του τρέχοντος κόμβου (γιό, εγγονός κ.λπ.). descendant-or-self
επιλέγουμε όλους τους απογόνους του τρέχοντος κόμβου (γιό, εγγονός κ.λπ.) και τον ίδιο τον κόμβο. following
επιλέγουμε όλους τους κόμβους μετά από την τελική ετικέτα του τρέχοντος κόμβου. namespace
επιλέγουμε όλους τους κόμβους του ονόματος χώρου του τρέχοντος κόμβου. parent
επιλέγουμε τον γονικό κόμβο του τρέχοντος κόμβου. preceding
επιλέγουμε όλους τους κόμβους πριν από την αρχική ετικέτα του τρέχοντος κόμβου. preceding-sibling
επιλέγουμε όλους τους συνομήλικους κόμβους του τρέχοντος κόμβου. self

επιλέγουμε τον τρέχοντα κόμβο.

έκφραση διαδρομής θέσης

Η διαδρομή θέσης μπορεί να είναι απόλυτη ή σχετική.

Η απόλυτη διαδρομή ξεκινά με τον κόμβο ( / ) και η σχετική διαδρομή δεν κάνει κάτι τέτοιο. Σε και τα δύο περιπτώματα, η διαδρομή θέσης περιλαμβάνει έναν ή περισσότερους βηματισμούς, που διαιρούνται από την κόμβο ( / ):

/step/step/...

απόλυτη διαδρομή θέσης:

step/step/...

κάθε βήμα υπολογίζεται με βάση τους κόμβους του τρέχοντος συνόλου κόμβων

βήμα (step) περιλαμβάνει:

άξονας (axis)
ορίζει τη δέντρο σχέση μεταξύ του επιλεγμένου κόμβου και του τρέχοντος κόμβου
τεστ κόμβου (node-test)
προσδιορισμός κόμβων μέσα σε έναν άξονα
μηδέν ή περισσότερες συνθήκες (predicate)
πιο βαθιά εξαγωγή του επιλεγμένου συνόλου κόμβων

σύνταξη βήματος:

ονομασία άξονα::κόμβος τεστ[συνθήκη]

παράδειγμα

παράδειγμα τέλος
child::book επιλέγουμε όλους τους κόμβους book που ανήκουν στο τρέχον κόμβο.
attribute::lang επιλέγουμε την ιδιότητα lang του τρέχοντος κόμβου.
child::* επιλέγουμε όλους τους υπονομάτες που είναι παιδιά του τρέχοντος κόμβου.
attribute::* επιλέγουμε όλες τις ιδιότητες του τρέχοντος κόμβου.
child::text() επιλέγουμε όλους τους γραμματικούς υπονομάτες του τρέχοντος κόμβου.
child::node() επιλέγουμε όλους τους υπονομάτες του τρέχοντος κόμβου.
descendant::book 选取当前节点的所有 book 后代。
ancestor::book 选择当前节点的所有 book 祖先。
ancestor-or-self::book 选取当前节点的所有 book 祖先以及当前节点(如果此节点是 book 节点)
child::*/child::price 选取当前节点的所有 price 子节点。