私は XML を使用して Java で作業していますが、疑問に思っています。要素とノードの違いは何ですか?
13 に答える
Node オブジェクトは、DOM 全体の主要なデータ型です。
ノードは、要素ノード、属性ノード、テキスト ノード、または「ノード タイプ」の章で説明されているその他のノード タイプのいずれかです。
XML 要素は、要素の開始タグ (を含む) から要素の終了タグ (を含む) までのすべてです。
異なる W3C 仕様は、異なる「ノード」タイプのセットを定義します。
したがって、DOM 仕様では、次のタイプのノードが定義されています。
Document
--Element
(最大 1 つ),ProcessingInstruction
,Comment
,DocumentType
DocumentFragment
--Element
,ProcessingInstruction
,Comment
,Text
,CDATASection
_EntityReference
DocumentType
-- 子供なしEntityReference
--Element
,ProcessingInstruction
,Comment
,Text
,CDATASection
_EntityReference
Element
--Element
,Text
,Comment
,ProcessingInstruction
,CDATASection
_EntityReference
Attr
--Text
、EntityReference
ProcessingInstruction
-- 子供なしComment
-- 子供なしText
-- 子供なしCDATASection
-- 子供なしEntity
--Element
,ProcessingInstruction
,Comment
,Text
,CDATASection
_EntityReference
Notation
-- 子供なし
XML Infoset ( XPath で使用) には、より小さなノード セットがあります。
XPath には次の Node タイプがあります。
- ルート ノード
- 要素ノード
- テキストノード
- 属性ノード
- 名前空間ノード
- 処理命令ノード
- コメントノード
「要素とノードの違いは何ですか」という質問に対する答えは次のとおりです。
An element is a type of node. Many other types of nodes exist and serve different purposes.
Node は DOM ツリーの一部であり、Element は特定のタイプの Node です
例えば
<foo> This is Text </foo>
foo 要素 (Element は Node から継承されるため、ノードでもあります) と、foo 要素/ノードの子である Text Node 'This is Text' があります。
ノードは、テキスト、コメント、要素、エンティティなど、さまざまな種類のものです。要素は、特定の種類のノードです。
さまざまなXML仕様で説明されているように、anelement
は、開始タグと終了タグ、およびその間のコンテンツ、あるいは空の要素タグ(コンテンツまたは終了タグがない)で構成されるものです。言い換えれば、これらはすべて要素です。
<foo> stuff </foo>
<foo bar="baz"></foo>
<foo baz="qux" />
「ノード」はほぼ同じ意味で使用されていると聞きますが、XML仕様ごとの正確な定義はありません。これは通常、DOMのようなもののノードを参照するために使用されます。これは、XMLに密接に関連している場合や、表現にXMLを使用している場合があります。
XML ドキュメントは、ネストされた要素で構成されます。要素は開始タグで始まり、終了タグで終わります。あなたはおそらく見られ<body>
、</body>
htmlにいます。開始タグと終了タグの間のすべてが要素のコンテンツです。要素が自己終了タグ (例: <br/>
) によって定義されている場合、そのコンテンツは空です。
開始タグは、属性を指定することもできます。<p class="rant">
. この例では、属性名は「class」で、その値は「rant」です。
XML 言語には「ノード」などはありません。仕様を読んでください、単語は発生しません。
「ノード」という単語を非公式に要素を意味するために使用する人もいますが、一部のパーサーはこの単語に技術的な意味 (「テキスト ノード」と「要素ノード」を識別する) を与えるため、混乱を招きます。正確な意味はパーサーに依存するため、使用しているパーサーを指定しない限り、この単語は不明確です。要素を意味する場合は、「要素」と言ってください。
ノードは、要素と属性の両方の基本クラスです (基本的に、他のすべての XML 表現も)。
要素は、子ノードと属性を持つことができる唯一の種類のノードです。
ドキュメントには子ノードもあり
ますが、属性もテキストもありません。子要素は1つだけです。
ノードは次のように定義されます。
ドキュメント内の有効で完全な構造の最小単位。
またはとして:
関連オブジェクトを保持するコンテナとして機能するツリー ビュー内のオブジェクト。
現在、要素ノード、属性ノードなど、さまざまな種類のノードがあります。
今私は知っています、要素はノードの1つです
ここにあるすべてのノードタイプ" http://www.w3schools.com/dom/dom_nodetype.asp "
要素は、開始タグと終了タグの終了の間にあります
したがって、テキストノードはノードですが、要素ではありません。
要素は、属性、テキストなどと同様にノードのタイプです。
XML 要素は XML ノードですが、属性などの要素が追加されています。
<a>Lorem Ipsum</a> //This is a node
<a id="sample">Lorem Ipsum</a> //This is an element