DOMでは、XML文書内のすべてのノードです。
DOMノード
DOMによると、XML文書内のすべてがあるnode 。
DOMは言います:
- 文書全体が文書ノードであります
- すべてのXML要素は、要素ノードであります
- XML要素内のテキストは、テキストノードであります
- 各属性は、属性ノードであります
- コメントは、コメントノードであります
DOMの例
次のXMLファイルを見てください( books.xml ):
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
上記のXMLのルートノードの名前は<bookstore> 。 文書内の他のすべてのノードが中に含まれている<bookstore> 。
ルートノードは<bookstore> 4成り立つ<book>ノードを。
最初の<book>ノードは4つのノードを保持: <title>, <author>, <year> 、および<price> 1つのテキストノードが含まれ、それぞれ、 "Everyday Italian", "Giada De Laurentiis" 、 "2005" 、および"30.00" 。
テキストは常にテキスト・ノードに格納されています
DOM処理における一般的なエラーは、テキストを格納するための要素ノードを期待することです。
しかし、要素ノードのテキストは、テキスト・ノードに格納されています。
この例では: <year>2005</year> 、要素ノード<year> 、値とテキストノードを保持している"2005" 。
「2005」であり、 notの値は<year>要素!
XML DOMノードツリー
XML DOMツリー構造としてXML文書を見ます。 ツリー構造が呼び出されnode-tree.
すべてのノードがツリーを介してアクセスすることができます。 その内容は、変更または削除され、新たな要素を作成することができることができます。
ノードツリーは、ノードの集合、およびそれらの間の接続を示しています。 ツリーは、ルートノードと、ツリーの最下位レベルのテキストノードへのアウト支店で開始します:
上記の画像は、XMLファイルを表すのBooks.xmlを 。
ノード親、子供、兄弟姉妹
ノードツリー内のノードは、互いに階層的な関係を持っています。
用語親、子および兄弟の関係を記述するために使用されます。 親ノードは子を持ちます。 同じレベルの子供たちは、兄弟と呼ばれている(brothers or sisters) 。
- ノードツリーで、最上位ノードは、ルートと呼ばれています
- すべてのノードは、ルートを除いて、正確に一つの親ノードを持っています
- ノードは、子供の数に制限はありません
- 葉は子を持たないノードであり、
- 兄弟姉妹は、同じ親を持つノードであります
以下の画像は、ノードツリーの一部とノード間の関係を示しています。
XMLデータは、ツリー形式で構成されているので、木の正確な構成を知ることなく、また内に含まれるデータのタイプを知らなくても横断することができます。
このチュートリアルの後の章でノードツリーをトラバースについての詳細を学びます。
最初の子 - 最後の子
次のXMLフラグメントを見てください:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
上記のXMLでは、 <title>要素は、最初の子である<book>要素、および<price>要素は、最後の子である<book>要素。
さらに、 <book>要素は、親ノードである<title>, <author>, <year> , and <price> elements. <title>, <author>, <year> , and <price> elements.