В чем разница между элементом и узлом в XML?
Я работаю на Java с XML, и мне интересно; в чем разница между элементом и узлом?
13 ответов
объект Node является основным типом данных для всего DOM.
узел может быть узлом элемента, узлом атрибута, текстовым узлом или любым другим типом узла, описанным в главе "типы узлов".
XML-элемент-это все, от (включая) начальный тег элемента до (включая) конечный тег элемента.
различные спецификации W3C определяют различные наборы типов "узлов".
таким образом,DOM spec определяет следующие типы узлов:
-
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
-- нет дети!--55-->
на XML Infoset (используется 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/Node
как описано в различных XML технические характеристики, an element
- это то, что состоит из начального тега и конечного тега и содержимого между ними или поочередно пустого тега элемента (который не имеет содержимого или конечного тега). Другими словами, это все элементы:
<foo> stuff </foo>
<foo bar="baz"></foo>
<foo baz="qux" />
хотя вы слышите, что "узел" используется примерно с тем же значением, он не имеет точного определения для спецификаций XML. Он обычно используется для обозначения узлов таких вещей, как DOMs, которые могут быть тесно связаны с XML или использовать XML для их представления.
XML-документ состоит из вложенных элементов. Элемент начинается с его открывающий тег и заканчивается на закрывающий тег. Вас, наверное, видели <body>
и </body>
в html. Все, что между открывающим и закрывающим тегами элемента контент. Если элемент определяется самозакрывающимся тегом (например. <br/>
) тогда его содержимое пусто.
Открытие тегов также можно указать атрибуты, например. <p class="rant">
. В этом примере атрибут имя это "класс" и его стоимостью 'rant'.
язык XML не имеет такой вещи, как "узел". читать спецификации слово не происходит.
некоторые люди используют слово "узел" неофициально для обозначения элемента, что сбивает с толку, потому что некоторые синтаксические анализаторы также придают слову техническое значение (идентифицируя "текстовые узлы" и "узлы элементов"). Точное значение зависит от парсера, поэтому слово неопределена если вы не укажете, какой парсер вы используете. если вы имеете в виду элемент, скажем, 'элемент'.
узел является базовым классом как для элементов, так и для атрибутов (и в основном для всех других XML-представлений).
элемент - это единственный вид узел что может иметь дочерние узлы и атрибуты.
документ также имеет дочерние узлы, но
нет атрибутов, нет текста, точно один дочерний элемент.
узел определена as:
наименьшая единица допустимой, полной структуры в документе.
или так:
объект в виде дерева, которая служит контейнером для хранения связанных объектов.
теперь их много разных типов узлов в качестве узла элементов, узла атрибута и т. д.
теперь я знаю ,что элемент является одним из node
все типы узлов здесь"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