Nós XPath
Terminologia XPath
Nós
No XPath, existem sete tipos de nós: elemento, atributo, texto, espaço de nomes, instrução de processamento, comentário e nós de documento.
Documentos XML são tratados como árvores de nós. O elemento mais alto da árvore é chamado de elemento raiz.
Observe o seguinte documento XML:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
Exemplo de nós no documento XML acima:
<bookstore> (root element node)
<author>J K. Rowling</author> (element node)
lang="en" (attribute node)
Valores atômicos
Os valores atômicos são nós sem filhos ou pai.
Exemplo de valores atômicos:
J K. Rowling
"en"
Itens
Os itens são valores atômicos ou nós.
Relação de nós
Pai
Cada elemento e atributo tem um pai.
No exemplo a seguir; o elemento livro é o pai do título, autor, ano e preço:
<book>
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
Crianças
Os nós de elemento podem ter zero, um ou mais filhos.
No exemplo a seguir; os elementos título, autor, ano e preço são todos filhos do elemento livro:
<book>
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
Irmãos
Nós que têm o mesmo pai.
No exemplo a seguir; os elementos título, autor, ano e preço são todos irmãos:
<book>
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
Ancestrais
Pai de um nó, pai do pai, etc.
No exemplo a seguir; os ancestrais do elemento title são o elemento book e o elemento bookstore:
<bookstore>
<book>
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
Descendentes
Filhos de um nó, filhos de filhos, etc.
No exemplo a seguir; descendentes do elemento livraria são os elementos livro, título, autor, ano e preço:
<bookstore>
<book>
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>