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

  • Информационный Элемент Документа
  • Элемент Информационных Элементов
  • Элементы Атрибутивной Информации
  • Обработка Информационных Элементов Инструкции
  • Нерасширенные Элементы Справочной Информации Сущности
  • Информация О Символах Предметы
  • Комментарий Информационные Элементы
  • Элемент Информации Объявления Типа Документа
  • Unparsed Entity Information Items
  • Информационные Элементы Обозначения
  • Информационные Элементы Пространства Имен
  • 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
    

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