В чем разница между элементом и узлом в 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
    

    Узел и элемент одинаковы. Каждый элемент является узлом, но не каждый узел должен быть элементом.

    Другие вопросы по тегам