Ich arbeite in Java mit XML und frage mich; Was ist der Unterschied zwischen einem Element und einem Knoten?
Ich arbeite in Java mit XML und frage mich; Was ist der Unterschied zwischen einem Element und einem Knoten?
Antworten:
Das Node-Objekt ist der primäre Datentyp für das gesamte DOM.
Ein Knoten kann ein Elementknoten, ein Attributknoten, ein Textknoten oder ein anderer der im Kapitel "Knotentypen" erläuterten Knotentypen sein.
Ein XML-Element ist alles vom Start-Tag des Elements bis zum End-Tag des Elements.
Unterschiedliche W3C-Spezifikationen definieren unterschiedliche Sätze von "Knotentypen".
Daher definiert die DOM-Spezifikation die folgenden Knotentypen:
Document
- Element
(maximal eins), ProcessingInstruction
,
Comment
,DocumentType
DocumentFragment
- Element
, ProcessingInstruction
,
Comment
, Text
, CDATASection
,EntityReference
DocumentType
-- keine Kinder
EntityReference
- Element
, ProcessingInstruction
,
Comment
, Text
, CDATASection
,EntityReference
Element
- - Element
, Text
, Comment
, ProcessingInstruction
,
CDATASection
,EntityReference
Attr
- Text
,EntityReference
ProcessingInstruction
-- keine Kinder
Comment
-- keine Kinder
Text
-- keine Kinder
CDATASection
-- keine Kinder
Entity
- Element
, ProcessingInstruction
,
Comment
, Text
, CDATASection
,EntityReference
Notation
-- keine Kinder Das XML-Infoset (von XPath verwendet) verfügt über eine kleinere Anzahl von Knoten:
XPath hat die folgenden Knotentypen:
Die Antwort auf Ihre Frage " Was ist der Unterschied zwischen einem Element und einem Knoten " lautet:
An element is a type of node. Many other types of nodes exist and serve different purposes.
Ein Knoten ist ein Teil des DOM-Baums, ein Element ist ein bestimmter Knotentyp
z.B
<foo> This is Text </foo>
Sie haben ein foo-Element (das auch ein Knoten ist, wie es das Element vom Knoten erbt) und einen Textknoten 'Dies ist Text', der ein untergeordnetes Element des foo-Elements / Knotens ist
Ein Knoten kann eine Reihe verschiedener Arten von Dingen sein: Text, ein Kommentar, ein Element, eine Entität usw. Ein Element ist eine bestimmte Art von Knoten.
Wie in den verschiedenen XML- Spezifikationen beschrieben , element
besteht a aus einem Start- und einem End-Tag sowie dem dazwischen liegenden Inhalt oder alternativ aus einem leeren Element-Tag (das keinen Inhalt oder kein End-Tag enthält). Mit anderen Worten, dies sind alles Elemente:
<foo> stuff </foo>
<foo bar="baz"></foo>
<foo baz="qux" />
Obwohl Sie hören, dass "Knoten" mit ungefähr derselben Bedeutung verwendet wird, gibt es keine genaue Definition gemäß XML-Spezifikationen. Es wird normalerweise verwendet, um auf Knoten von Dingen wie DOMs zu verweisen, die eng mit XML verbunden sein können, oder um XML für ihre Darstellung zu verwenden.
Ein XML-Dokument besteht aus verschachtelten Elementen. Ein Element beginnt an seinem öffnenden Tag und endet an seinem schließenden Tag . Sie sind wahrscheinlich gesehen <body>
und </body>
in HTML. Alles zwischen dem öffnenden und dem schließenden Tag ist der Inhalt des Elements . Wenn ein Element durch ein selbstschließendes Tag (z. B. <br/>
) definiert ist, ist sein Inhalt leer.
Das Öffnen von Tags kann auch Attribute angeben , z. <p class="rant">
. In diesem Beispiel ist das Attribut Name ist ‚Klasse‘ und dessen Wert ‚rant‘.
Die XML-Sprache hat keinen "Knoten" . Lesen Sie die Spezifikation , das Wort kommt nicht vor.
Einige Leute verwenden das Wort "Knoten" informell, um Element zu bedeuten, was verwirrend ist, da einige Parser dem Wort auch eine technische Bedeutung geben (Identifizierung von "Textknoten" und "Elementknoten"). Die genaue Bedeutung hängt vom Parser ab, daher ist das Wort schlecht definiert, es sei denn, Sie geben an, welchen Parser Sie verwenden. Wenn Sie Element meinen, sagen Sie "Element" .
Ein Knoten ist die Basisklasse für Elemente und Attribute (und im Grunde auch für alle anderen XML-Darstellungen).
Ein Knoten ist definiert als:
die kleinste Einheit einer gültigen, vollständigen Struktur in einem Dokument.
oder als:
Ein Objekt in der Baumansicht, das als Container für verwandte Objekte dient.
Nun gibt es viele verschiedene Arten von Knoten als Elementknoten, Attributknoten usw.
Jetzt weiß ich, das Element ist eines der Knoten
Alle Knotentypen hier " http://www.w3schools.com/dom/dom_nodetype.asp "
Das Element befindet sich zwischen dem Start-Tag und dem Ende im End-Tag
Der Textknoten ist also ein Knoten, aber kein Element.
Ein Element ist ein Knotentyp, ebenso wie Attribute, Text usw.
XML-Element ist ein XML-Knoten, jedoch mit zusätzlichen Elementen wie Attributen.
<a>Lorem Ipsum</a> //This is a node
<a id="sample">Lorem Ipsum</a> //This is an element
Knoten & Element sind gleich. Jedes Element ist ein Knoten, aber es ist nicht so, dass jeder Knoten ein Element sein muss.