web-dev-qa-db-ja.com

XMLの要素とノードの違いは何ですか?

私はXMLと一緒にJavaで働いています、そして私は思っています。要素とノードの違いは何ですか?

348
Philip Morton

Nodeオブジェクトは、DOM全体の主なデータ型です。

ノードは、要素ノード、属性ノード、テキストノード、または「ノードタイプ」の章で説明されているノードタイプのいずれかです。

XML要素は、要素の開始タグから(含む)要素の(終了タグまで)すべてです。

245
Benoit

W3Cの仕様が異なると、「ノード」タイプのセットも異なります。

したがって、 DOM仕様 は、次の種類のノードを定義します。

  • Document - Elementname__(最大1)、ProcessingInstructionname__、Commentname__、DocumentTypename__
  • DocumentFragment - Elementname__、ProcessingInstructionname__、Commentname__、Textname__、CDATASectionname__、EntityReferencename__
  • DocumentType - 子供はいません
  • EntityReference - Elementname__、ProcessingInstructionname__、Commentname__、Textname__、CDATASectionname__、EntityReferencename__
  • Element - Elementname__、Textname__、Commentname__、ProcessingInstructionname__、CDATASectionname__、EntityReferencename__
  • Attr - Textname__、EntityReferencename__
  • ProcessingInstruction - 子供はいません
  • Comment - 子供はいません
  • Text - 子供はいません
  • CDATASection - 子供はいません
  • Entity - Elementname__、ProcessingInstructionname__、Commentname__、Textname__、CDATASectionname__、EntityReferencename__
  • Notation - 子供はいません

XML Infoset (XPathで使用される)では、ノードのセットが少なくなります。

  • 文書情報アイテム
  • 要素情報アイテム
  • 属性情報の項目
  • 処理指示情報の項目
  • 未拡張エンティティ参照情報項目
  • キャラクター情報
  • コメント情報
  • 文書タイプ宣言情報項目
  • 未解析のエンティティ情報項目
  • 表記情報アイテム
  • 名前空間の情報項目
  • XPathには以下のノードタイプがあります。

    • ルートノード
    • 要素ノード
    • テキストノード
    • 属性ノード
    • ネームスペースノード
    • 処理命令ノード
    • コメントノード

    あなたの質問に対する答えは "要素とノードの違いは何ですか":

    An element is a type of node. Many other types of nodes exist and serve different purposes.

    66

    ノードはDOMツリーの一部であり、要素はノードの特定の種類です。

    例えば<foo> This is Text </foo>

    あなたはfoo要素(要素はNodeから継承するのでこれもNodeです)とテキストノード 'This is Text'、それはfoo要素/ノードの子です。

    27
    mmaibaum

    ノードとは、いくつかの異なる種類のものです。テキスト、コメント、要素、エンティティなど。要素は特定の種類のノードです。

    26
    Greg Hewgill

    さまざまなXML specification で説明されているように、elementは開始タグと終了タグ、およびその間のコンテンツからなるもの、あるいは空の要素タグ(コンテンツまたは終了タグのないもの)です)言い換えれば、これらはすべての要素です。

    <foo> stuff </foo>
    <foo bar="baz"></foo>
    <foo baz="qux" />
    

    「node」はほぼ同じ意味で使用されていると聞きますが、XML仕様ごとに正確な定義はありません。通常、DOMのようなもののノードを参照するために使用されます。DOMはXMLと密接に関連しているか、XMLを表現に使用している可能性があります。

    15
    fenomas

    Xml文書はネストした要素でできています。要素は、開始タグで始まり、終了タグで終わります。あなたはおそらくHTMLで<body></body>を見ているでしょう。開始タグと終了タグの間にあるものはすべて、要素のcontentです。要素が自己終了タグ(例:<br/>)で定義されている場合、その内容は空です。

    開始タグはattributesを指定することもできます。 <p class="rant">。この例では、属性nameは 'class'で、そのvalue 'rant'です。

    XML言語には、 'ノード'のようなものはありません。 仕様を読む 、Wordは発生しません。

    単語「ノード」を非公式に使用して要素を意味する人もいますが、パーサによっては技術的な意味(「テキストノード」および「要素ノード」を識別する)をWordに与えるため、混乱します。正確な意味はパーサに依存します。ですから、あなたが使用しているパーサをあなたが述べない限り、Wordは定義されていません。 もしあなたが要素を意味するなら、 'element'と言います

    11
    Colonel Panic

    ノードは、要素と属性(そして基本的に他のすべてのXML表現も)の両方の基本クラスです。

    9
    Troels Thomsen

    Elementは、子ノードと属性を持つことができる唯一の種類のnodeです。

    ドキュメントには子ノードもありますが、
    属性なし、テキストなし、厳密に1つの子要素。

    7
    eugensk00

    ノードは 定義済み のようになります。

    文書内の有効で完全な構造の最小単位。

    またはとして:

    関連オブジェクトを保持するためのコンテナとして機能するツリービュー内のオブジェクト。

    要素ノード、属性ノードなど、さまざまな種類のノードがあります。

    2
    Robert Rocha

    今私は知っている、要素はノードの一つです

    ここにあるすべてのノードタイプ " http://www.w3schools.com/dom/dom_nodetype.asp "

    要素は開始タグと終了タグの間にあります

    そのため、テキストノードはノードですが、要素ではありません。

    1
    user254791

    要素は、属性やテキストなど、ノードの一種です。

    0
    Simon Keep