Я работаю на Java с XML, и мне интересно; в чем разница между элементом и узлом?
В чем разница между элементом и узлом в XML?
Ответы (13)
Объект Node - это основной тип данных для всей модели DOM.
Узел может быть узлом элемента, узлом атрибута, текстовым узлом или любым другим из типов узлов, описанных в главе «Типы узлов».
Элемент XML - это все, от начального тега элемента (включая его) до конечного тега элемента (включая его).
<p>
s и <div>
s элементами p и элементами div
- person Juan Mendes; 04.04.2012
Node
и Element
. Некоторые нюансы только добавляют ненужной сложности и это один из них.
- person amphibient; 19.11.2014
Xml Node
& Xml Element
были бы полезны
- person Anatoly; 18.06.2018
Различные спецификации W3C определяют разные наборы типов «узлов».
Таким образом, Спецификация DOM определяет следующие типы узлов:
Document
--Element
(maximum of one),ProcessingInstruction
,Comment
,DocumentType
DocumentFragment
--Element
,ProcessingInstruction
,Comment
,Text
,CDATASection
,EntityReference
DocumentType
-- no childrenEntityReference
--Element
,ProcessingInstruction
,Comment
,Text
,CDATASection
,EntityReference
Element
--Element
,Text
,Comment
,ProcessingInstruction
,CDATASection
,EntityReference
Attr
--Text
,EntityReference
ProcessingInstruction
-- no childrenComment
-- no childrenText
-- no childrenCDATASection
-- no childrenEntity
--Element
,ProcessingInstruction
,Comment
,Text
,CDATASection
,EntityReference
Notation
-- no children
XML Infoset (используемый XPath) меньший набор узлов:
XPath имеет следующие типы узлов:
- корневые узлы
- узлы элементов
- текстовые узлы
- узлы атрибутов
- узлы пространства имен
- узлы инструкций по обработке
- узлы комментариев
Ответ на ваш вопрос «В чем разница между элементом и узлом»:
An element is a type of node. Many other types of nodes exist and serve different purposes.
Узел - это часть дерева DOM, элемент - это особый тип узла.
e.g.
<foo> This is Text </foo>
У вас есть элемент foo (который также является узлом, поскольку элемент наследуется от узла) и текстовый узел 'This is Text', который является дочерним элементом элемента / узла foo.
Узел может быть множеством разных типов вещей: некоторый текст, комментарий, элемент, сущность и т. Д. Элемент - это особый вид узла.
Как описано в различных спецификациях, element
- это то, что состоит из начального и конечного тегов и содержимого между ними, или, альтернативно, тега пустого элемента (не имеющего содержимого или конечного тега). Другими словами, это все элементы:
<foo> stuff </foo>
<foo bar="baz"></foo>
<foo baz="qux" />
Хотя вы слышите, что «узел» используется примерно в том же значении, у него нет точного определения согласно спецификациям XML. Обычно он используется для обозначения узлов таких вещей, как DOM, которые могут быть тесно связаны с XML или использовать XML для своего представления.
XML-документ состоит из вложенных элементов. Элемент начинается с его открывающего тега и заканчивается его закрывающим тегом. Вы, вероятно, видели <body>
и </body>
в html. Все, что находится между открывающим и закрывающим тегами, является содержимым элемента. Если элемент определяется самозакрывающимся тегом (например, <br/>
), его содержимое пусто.
Открывающие теги также могут указывать атрибуты, например. <p class="rant">
. В этом примере атрибут name - "class", а его значение - "rant".
В языке XML нет такого понятия, как «узел». Прочтите спецификацию, слово не встречается.
Некоторые люди неофициально используют слово «узел» для обозначения элемента, что сбивает с толку, потому что некоторые парсеры также придают этому слову техническое значение (идентифицируя «текстовые узлы» и «узлы элементов»). Точное значение зависит от синтаксического анализатора, поэтому слово не определено, если вы не укажете, какой синтаксический анализатор вы используете. Если вы имеете в виду элемент, скажите "элемент".
Узел является базовым классом как для элементов, так и для атрибутов (и в основном для всех других представлений XML).
Элемент - это единственный тип узла, который может иметь дочерние узлы и атрибуты.
У документа также есть дочерние узлы, НО
без атрибутов, без текста, ровно один дочерний элемент.
Узел определяется как:
наименьшая единица действительной полной структуры в документе.
or as:
Объект в древовидном представлении, служащий контейнером для хранения связанных объектов.
Теперь у них есть много разных типов узлов, таких как узел элементов, узел атрибутов и т. Д.
Теперь я знаю, что элемент является одним из узлов
Все типы узлов здесь "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
узел и элемент такие же. Каждый элемент является узлом, но это не значит, что каждый узел должен быть элементом.