В чем разница между элементом и узлом в XML?
Я работаю на Java с XML, и мне интересно; В чем разница между элементом и узлом?
13 ответов
Объект Node является основным типом данных для всего DOM.
Узлом может быть узел элемента, узел атрибута, текстовый узел или любой другой из типов узлов, описанных в главе "Типы узлов".
Элемент XML - это все от (включая) начальный тег элемента до (включая) конечный тег элемента.
Различные спецификации W3C определяют разные наборы типов "Узлов".
Таким образом, спецификация DOM определяет следующие типы узлов:
Document
-Element
(максимум один),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 (используемый XPath) имеет меньший набор узлов:
XPath имеет следующие типы узлов:
- корневые узлы
- узлы элементов
- текстовые узлы
- атрибутивные узлы
- узлы пространства имен
- узлы инструкций по обработке
- узлы комментариев
Ответ на ваш вопрос "В чем разница между элементом и узлом ":
An element is a type of node. Many other types of nodes exist and serve different purposes.
Узел является частью дерева DOM, Элемент - это особый тип узла
например <foo> This is Text </foo>
У вас есть элемент foo (который также является узлом, так как элемент наследуется от узла) и текстовый узел "Это текст", который является дочерним элементом элемента / узла foo
Узлом может быть множество разных видов вещей: некоторый текст, комментарий, элемент, объект и т. Д. Элемент - это особый вид узла.
Как описано в различных спецификациях XML, element
это то, что состоит из начального тега и конечного тега и содержимого между ними, или, альтернативно, пустого тега элемента (который не имеет содержимого или конечного тега). Другими словами, это все элементы:
<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).
Элемент - единственный вид узла, который может иметь дочерние узлы и атрибуты.
Документ также имеет дочерние узлы, НО
без атрибутов, без текста, ровно один дочерний элемент.
Узел определяется как:
наименьшая единица допустимой, полной структуры в документе.
или как:
Объект в древовидном представлении, который служит контейнером для хранения связанных объектов.
Теперь это много разных видов узлов, таких как узел элементов, узел атрибута и т. Д.
Теперь я знаю, что элемент является одним из узлов
Все типы узлов здесь " 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
Узел и элемент одинаковы. Каждый элемент является узлом, но не каждый узел должен быть элементом.