Я работаю на Java с XML, и мне интересно; какая разница между элементом и node?
Объект Node является основным типом данных для всей DOM.
A Node может быть элементом node, атрибутом node, текстом node или любым другим типом Node, описанным в главе "Node".
Элемент XML - это все, начиная от (включая) начального тега элемента до (включая) тега конца элемента.
Различные спецификации W3C определяют разные наборы типов "Node".
Таким образом, DOM spec определяет следующие типы узлов:
Документ
- Элемент
(максимум
один), ProcessingInstruction
,
Комментарий
, DocumentType
DocumentFragment
- Элемент
, ProcessingInstruction
,
Комментарий
, Текст
, CDATASection
, EntityReference
DocumentType
-
нет детей
EntityReference
- Элемент
, ProcessingInstruction
,
Комментарий
, Текст
, CDATASection
, EntityReference
Элемент
- Элемент
, Текст
, Комментарий
, ProcessingInstruction
,
CDATASection
, EntityReference
Attr
- Текст
, EntityReference
ProcessingInstruction
-- нет детей
Комментарий
- нет
дети
Текст
- нет
дети
CDATASection
-
нет детей
Entity
- Элемент
, ProcessingInstruction
,
Комментарий
, Текст
, CDATASection
, EntityReference
Обозначение
- нет
детиXML Infoset (используется XPath) имеет меньший набор узлов:
Информационный элемент документа Элемент информации элемента Элементы информации атрибута Информация о инструкциях по обработке инструкций Элементы справочной информации без расширения Элементы информации о персонаже Сведения о комментариях Информационный элемент декларации типа документа Непарные данные об элементах сущности Элементы информации о нотации Информационные элементы пространства именXPath имеет следующие типы Node:
Ответ на ваш вопрос "В чем разница между элементом и node":
An element is a type of node. Many other types of nodes exist and serve different purposes.
A node может быть множеством различных вещей: некоторый текст, комментарий, элемент, сущность и т.д. Элемент представляет собой особый вид node.
A Node является частью дерева DOM, элемент - это особый тип Node
например. <foo> This is Text </foo>
У вас есть foo Element (который также является Node, поскольку Element наследует от Node) и Text Node 'This is Text', который является дочерним элементом foo Element/Node
Как описано в различных спецификациях XML , element
- это то, что состоит из начального тега и конечного тега, а также содержимого в промежутке или поочередно - пустой тег элемента (который не имеет содержимого или конечного тега). Другими словами, это все элементы:
<foo> stuff </foo>
<foo bar="baz"></foo>
<foo baz="qux" />
Хотя вы слышите "node", который используется с примерно одинаковым значением, он не имеет точного определения для спецификаций XML. Он обычно используется для обозначения узлов таких вещей, как DOM, которые могут быть тесно связаны с XML или использовать XML для их представления.
Документ xml состоит из вложенных элементов. Элемент начинается с его открывающего тега и заканчивается его закрывающим тегом. Вероятно, вы видели <body>
и </body>
в html. Все, что находится между тегами открытия и закрытия, - это содержимое элемента. Если элемент определен самозакрывающимся тегом (например, <br/>
), то его содержимое пуст.
В открывающих тегах также могут указываться атрибуты, например. <p class="rant">
. В этом примере имя атрибута - "класс", а его значение "rant".
В языке XML нет такой вещи, как "node" . Прочитайте спецификацию, слово не встречается.
Некоторые люди используют слово "node" неформально для обозначения элемента, что путается, потому что некоторые парсеры также дают слово техническое значение (идентифицируя "текстовые узлы" и "узлы элементов" ). Точный смысл зависит от анализатора, поэтому слово плохо определено, если вы не укажете, какой парсер вы используете. Если вы имеете в виду элемент, скажите 'element'.
A node - базовый класс для обоих элементов и атрибутов (и в основном все остальные представления XML).
Элемент - единственный вид node, который может иметь дочерние узлы и атрибуты.
Документ также имеет дочерние узлы, НО
нет атрибутов, нет текста, ровно один дочерний элемент.
A node определяется как:
наименьшая единица действительной полной структуры в документе.
или как:
Объект в древовидном представлении, который служит контейнером для хранения связанных объектов.
Теперь их много разных типов узлов как элементы node, атрибут node и т.д.
Теперь я знаю, что элемент является одним из node
Здесь все типы node " http://www.w3schools.com/dom/dom_nodetype.asp"
Элемент находится между начальным тегом и концом в конце тега
Таким образом, текст node является node, но не элементом.
Элемент представляет собой тип node, а также атрибуты, текст и т.д.
XML Element - это XML Node, но с дополнительными элементами, такими как атрибуты.
<a>Lorem Ipsum</a> //This is a node
<a id="sample">Lorem Ipsum</a> //This is an element
node, и элемент тот же. Каждый элемент является node, но это не значит, что каждый node должен быть элементом.