XML DOMノード

XML DOMに基づいて、XMLドキュメントのすべての内容はノード

  • 全体のドキュメントはドキュメントノードです
  • 各XML要素は要素ノードです
  • XML要素のテキストはテキストノードです
  • 各属性は属性ノードです
  • コメントはコメントノードに属しています

DOM例

以下のXMLファイルを確認してください(books.xml):

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="美食">
  <title lang="zh">雅舍谈吃</title>
  <author>梁实秋</author>
  <press>江苏文艺出版社</press>
  <year>2013</year>
  <price>35</price>
  <ISBN>9787539962771</ISBN>
</book>
<book category="儿童">
  <title lang="zh">素晴らしいリスのパパ</title>
  <author>ロール・ダール</author>
  <translator>代維</translator>
  <press>明日出版社</press>
  <year>2009</year>
  <price>10</price>
  <ISBN>9787533259563</ISBN>
</book>
<book category="文学">
  <title lang="zh">馴れ親しんだものを未知にする</title>
  <author>ジグモント・ボウマン</author>
  <author>ピーター・ハフナー</author>
  <translator>王立秋</translator>
  <press>南京大学出版局</press>
  <year>2023</year>
  <price>68</price>
  <ISBN>9787305269387</ISBN>
</book>
<book category="科学">
  <title lang="zh">鳥のように飛びたいですか?</title>
  <author>リチャード・ドーカンス</author>
  <author>アナ・レンゾワ</author>
  <translator>高天羽</translator>
  <press>湖南科学技術出版社</press>
  <year>2023</year>
  <price>88</price>
  <ISBN>9787571019075</ISBN>
</book>
<book category="政治" cover="平装">
  <title lang="zh">アメリカの民主主義</title>
  <author>トクヴィル</author>
  <translator>董果良</translator>
  <press>商務印書館</press>
  <year>1989</year>
  <price>60</price>
  <ISBN>9787100124553</ISBN>
</book>
</bookstore>

上記の XML では、ルートノードは <bookstore> です。

ドキュメントの他のすべてのノードは <bookstore> に含まれています。

ルートノード <bookstore> は 5 つの <book> ノードを持ちます。

最初の <book> ノードは、<title>、<author>、<press>、<year>、<price>、<ISBN> という 6 つのサブノードを含んでいます。

それぞれの子ノードはテキストノードを含んでいます:

  • "雅舍谈吃"
  • "梁实秋"
  • "江苏文艺出版社"
  • "2012"
  • "48.00"
  • "9787100011105"

テキストは常にテキストノードに保存されます

DOM処理では、要素ノードがテキストを含むと誤解される一般的な間違いがあります。

しかし、要素ノードのテキストはテキストノードに保存されています。

この例では:<year>2013</year>、要素ノード<year>は「2012」のテキストノードを含んでいます。

"2012" ではありません <year>要素の値!

XML DOMノードツリー

XML DOMはXMLドキュメントを木構造として見なします。この木構造はノードツリー.

このツリーを通じてすべてのノードにアクセスできます。その内容を変更したり削除したり、新しい要素を作成することもできます。

このノードツリーは、ノードの集合とそれらの関係を示しています。このツリーはルートノードから始まり、最も低いレベルのテキストノードに枝を広げます:

DOM ノードツリー

上の図はXMLファイルを示しています books.xml.

親、子、同胞ノード

ノードツリーのノードは相互に階層関係を持っています。

「親」、「子」、「同胞」という用語は、この関係を説明するために使用されます。親ノードには子ノードがあります。同じレベルに位置する子ノードは、同級ノードまたは同胞ノード(兄弟または姉妹)と呼ばれます。

  • ノードツリーの最上層のノードはルートと呼ばれます
  • ルートノード以外の各ノードは、1つの親ノードしか持っていません
  • ノードは任意の数の子ノードを持つことができます
  • リーフは子ノードを持たないノードです
  • 同胞ノードは同じ親ノードを持つノードです

以下の図は、ノードツリーの一部とその関係を示しています:

DOM ノードツリー

XMLデータは木の形で構築されているため、木の正確な構造や含まれるデータの種類を知らなくても、それを遍歴できます。

このチュートリアルの後の章で、ノードツリーの遍歴に関する多くの知識を学びます。

コメント:親ノード:Parent Node、子ノード:Children Node、同じレベルのノード:Sibling Node。

最初の子ノード - 最後の子ノード

以下のXMLスライスを確認してください:

<bookstore>
  <book category="美食">
    <title lang="zh">雅舍谈吃</title>
    <author>梁实秋</author>
	<press>江苏文艺出版社</press>
    <year>2013</year>
    <price>35</price>
	<ISBN>9787100011105</ISBN>
  </book>
</bookstore>

上記の XML では、<title> 要素は <book> 要素の最初の子ノードであり、<ISBN> 要素は <book> 要素の最後の子ノードです。

さらに、<book> 要素は <title>、<author>、<year>、<press>、<price>、および <ISBN> 要素の親ノードです。