Почему узлы и элементы отличаются в XML? В чем была причина?

Будучи написанием кода, который работает на XML некоторое время, я всегда задавался вопросом, в чем причина наличия как узлов, так и элементов? (Мы знаем каковы различия). Оба они представляют теги (более или менее) и имеют разные методы, просто делают код сложным.

Есть ли какая-либо специальная семантика или практические причины, или это просто факт, что спецификация DOM была сформирована комитетом?

Ответ 1

Node является базовым классом Element - почти все в документе Xml - это Node, например:

<!ENTITY...>
<xml a="myAttribute">
    SomeText
    <!-- A comment -->
</xml>

В приведенном выше примере:

  • <!ENTITY...> является сущностью
  • <xml ... - это элемент
  • a="myAttribute" - это атрибут
  • SomeText - это текст node
  • <!-- A comment --> - комментарий

Все вышесказанное наследует от Node, фактически в приведенном выше примере myAttribute также есть текст node.

Ответ 2

Node является более общим, чем элемент. Проверьте эту страницу для всех разных вещей, для которых может стоять Node. Элемент - это лишь одна из тех возможностей, которая соответствует тегам. Важно подчеркнуть, что узлы обычно не представляют собой теги XML.

Например, <a>blah</a> содержит два узла. Первый - это "элемент", представляющий тег <a>, второй - текст Node, содержащий "blah".

Ответ 3

Они не оба представляют теги. Элемент представляет node, который начинается с начального тега и заканчивается концевым тегом. Элементом является node, но node не обязательно является элементом. Например, узлы могут быть:

  • Элементы
  • Текстовые данные
  • Комментарии

Ответ 4

Пожалуйста, посмотрите В чем разница между элементом и node в XML? Аналогичный вопрос был задан раньше.

Резюме: Элемент представляет собой особый вид node. A node также может быть атрибутом node, текстом node, комментарием node и т.д.