Почему узлы и элементы отличаются в 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 и т.д.