412 Stimmen

Was ist der Unterschied zwischen einem Element und einem Knoten in XML?

Ich arbeite in Java mit XML und frage mich: Was ist der Unterschied zwischen einem Element und einem Knoten?

288voto

Benoit Punkte 36144

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" beschriebenen Knotentypen sein.

Ein XML-Element ist alles vom Start-Tag (einschließlich) bis zum End-Tag (einschließlich) des Elements.

75voto

Dimitre Novatchev Punkte 234995

Die verschiedenen W3C-Spezifikationen definieren unterschiedliche "Node"-Typen.

Daher ist die DOM-Spezifikation definiert die folgenden Knotentypen:

  • Document -- Element (maximal einer), 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 -- nein Kinder
  • Text -- nein Kinder
  • CDATASection -- keine Kinder
  • Entity -- Element , ProcessingInstruction , Comment , Text , CDATASection , EntityReference
  • Notation -- nein Kinder

En XML-Infosatz (von XPath verwendet) hat eine kleinere Menge von Knoten:

  • Das Dokument Information Item
  • Element Informationspunkte
  • Attribut Informationspunkte
  • Informationen zu den Verarbeitungsanweisungen
  • Unerweiterte Entitätsreferenz-Informationselemente
  • Charakter-Informationspunkte
  • Kommentar Informationspunkte
  • Das Informationselement "Dokumententyperklärung
  • Unparsed Entity Information Items
  • Notation Informationselemente
  • Namespace-Informationselemente

XPath hat die folgenden Knotentypen:

  • Wurzelknoten
  • Elementknoten
  • Textknoten
  • Attributknoten
  • Namensraumknoten
  • Knoten der Verarbeitungsanweisungen
  • Kommentar-Knoten

Die Antwort auf Ihre Frage " Was ist der Unterschied zwischen einem Element und einem Knoten? " ist:

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

51voto

mmaibaum Punkte 2289

Ein Knoten ist ein Teil des DOM-Baums, ein Element ist ein bestimmter Typ von Knoten

z.B. <foo> This is Text </foo>

Sie haben ein foo-Element (das auch ein Knoten ist, da Element von Node erbt) und einen Textknoten 'This is Text', der ein Kind des foo-Elements/Nodes ist.

28voto

Greg Hewgill Punkte 882617

Ein Knoten kann eine Reihe verschiedener Dinge sein: ein Text, ein Kommentar, ein Element, eine Entität, usw. Ein Element ist eine besondere Art von Knoten.

16voto

fenomas Punkte 11110

Wie in den verschiedenen XML Spezifikationen , an element ist ein Element, das aus einem Start-Tag, einem End-Tag und dem dazwischen liegenden Inhalt besteht, oder ein leeres Element-Tag (das keinen Inhalt oder End-Tag hat). Mit anderen Worten, dies sind alle Elemente:

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

Obwohl der Begriff "Node" in etwa die gleiche Bedeutung hat, ist er in den XML-Spezifikationen nicht genau definiert. Normalerweise wird er für Knoten von Dingen wie DOMs verwendet, die eng mit XML verwandt sind oder XML für ihre Darstellung verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X