XPath node
XPath terminology
Node
In XPath, there are seven types of nodes: element, attribute, text, namespace, processing instruction, Comments and document (root) nodes. XML documents are treated as nodes trees. The root of the tree is called the document node or root node.
Please look at the following XML document:
< ;bookstore>
<book>
; <title lang="en">Harry Potter</title>
; <author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
Example of nodes in the above XML document:
<author>J K. Rowling</author> (element node)
lang="en" (attribute node)
Basic value (or atom Value, Atomic value)
The basic value is a node with no parent or child.
Example of basic value:
"en"
Item
Items are basic values or nodes.
Node relationship
Parent
Each element and attribute has a parent.
In the following example, the book element is the parent of the title, author, year, and price elements:
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
Children
The element node can have zero, one or more children.
In the following example, the title, author, year, and price elements are all children of the book element:
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
Siblings
Nodes with the same parent
In the following example, the title, author, year and price elements are all siblings:
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
Ancestor
The parent of a certain node, the parent of the parent, etc.
In the following example, the ancestors of the title element are the book element and the bookstore element:
<book>
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
Descendant
Someone Children of nodes, children of children, etc.
In the following example, the descendants of bookstore are the book, title, author, year, and price elements:
<book>
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>