Почему узлы и элементы отличаются в XML? Каково было обоснование?
Когда я некоторое время писал код, работающий с XML, я всегда задавался вопросом, в чем причина наличия как узлов, так и элементов? (Мы знаем, в чем различия). Оба они представляют теги (более или менее) и имеют разные методы, просто усложняют код.
Есть ли какая-то особая семантика или практические причины, или это просто тот факт, что спецификация DOM была сгенерирована комитетом?
4 ответа
Узел является базовым классом элемента - почти все в документе XML является узлом, например:
<!ENTITY...>
<xml a="myAttribute">
SomeText
<!-- A comment -->
</xml>
В приведенном выше примере:
<!ENTITY...>
это сущность<xml ...
это элементa="myAttribute"
это атрибутSomeText
текстовый узел<!-- A comment -->
это комментарий
Все вышеперечисленное наследуется от Node, фактически в приведенном выше примере myAttribute
также текстовый узел.
Узел более общий, чем элемент. Проверьте эту страницу для всех различных "вещей", за которые может стоять Узел. Элемент - это только одна из тех возможностей, которая соответствует тегам. Важно подчеркнуть, что узлы обычно не представляют теги XML.
Например, <a>blah</a>
содержит два узла. Первым является "элемент", представляющий <a>
тег, второй текстовый узел, содержащий "бла".
Они оба не представляют теги. Элемент представляет узел, который начинается с начального тега и заканчивается конечным тегом. Элемент является узлом, но узел не обязательно является элементом. Например, узлы могут быть:
- элементы
- Текстовые данные
- Комментарии
Пожалуйста, взгляните на разницу между элементом и узлом в XML? Подобный вопрос был задан ранее.
Резюме: элемент - это особый вид узла. Узлом также может быть узел атрибута, текстовый узел, узел комментариев и т. Д.