再论节点Node与元素的区别
2013-06-17 23:55
323 查看
一、Element肯定是Node,但是Node不一定是Element。
Dom在解析文档的时候按整个文档的结构生成一棵树,全部保存在内存 优点就是整个文档都一直在内存中,我们可以随时访问任何节点,并且对树的遍历也是比较熟悉的操作;缺点则是耗内存,并且必须等到所有的文档都读入内存才能 进行处理。 一个需要注意的地方就是,XML文档两个标签之间的空白也是这棵树的一个节点(Text节点),包括回车、Tab等。
所以,在用getChildNodes、getFirstChild、getNextSibling时返回的可能不全是Element。
据说DocumentBuilderFactory domFac = DocumentBuilderFactory.newInstance();
domFac.setIgnoringElementContentWhitespace(true); 有用,但是我试了下,没什么效果。
所以读xml时还是用getElementsByTagName方便点
二、
Element是Node的子集,XmlNode表示一个节点,包括XmlElement(元素)和XmlAttribute(属性)等。 如:
<Alarm lock="true"> //node
<Time> //node
StringValue //node
</Time> //node
</Alarm> //node
以上Alarm(元素节点),lock(属性节点),Time(元素节点),StringValue(文本节点)都是Node,但是只有 <Alarm>......</Alarm>和<Time>StringValue</Time>是 Element
----------------以下是我自己的理解--------------
xml element是继承于node,除了element之外,还有XmlAttribute、XmlText等。
通过某些方法可能可以得到某个值,可能是element、attribute、xmlText等,如果你不确定,则可以使用node来做返回值的类型。
node只是具有了一些通用的方法,而element则具有更具体的功能。
Dom在解析文档的时候按整个文档的结构生成一棵树,全部保存在内存 优点就是整个文档都一直在内存中,我们可以随时访问任何节点,并且对树的遍历也是比较熟悉的操作;缺点则是耗内存,并且必须等到所有的文档都读入内存才能 进行处理。 一个需要注意的地方就是,XML文档两个标签之间的空白也是这棵树的一个节点(Text节点),包括回车、Tab等。
所以,在用getChildNodes、getFirstChild、getNextSibling时返回的可能不全是Element。
据说DocumentBuilderFactory domFac = DocumentBuilderFactory.newInstance();
domFac.setIgnoringElementContentWhitespace(true); 有用,但是我试了下,没什么效果。
所以读xml时还是用getElementsByTagName方便点
二、
Element是Node的子集,XmlNode表示一个节点,包括XmlElement(元素)和XmlAttribute(属性)等。 如:
<Alarm lock="true"> //node
<Time> //node
StringValue //node
</Time> //node
</Alarm> //node
以上Alarm(元素节点),lock(属性节点),Time(元素节点),StringValue(文本节点)都是Node,但是只有 <Alarm>......</Alarm>和<Time>StringValue</Time>是 Element
----------------以下是我自己的理解--------------
xml element是继承于node,除了element之外,还有XmlAttribute、XmlText等。
通过某些方法可能可以得到某个值,可能是element、attribute、xmlText等,如果你不确定,则可以使用node来做返回值的类型。
node只是具有了一些通用的方法,而element则具有更具体的功能。
相关文章推荐
- 认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别
- 【HTML DOM】认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别
- XML(一) ---节点node和元素element的区别
- 认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别
- 认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别
- DOM树中的Node(节点)与Element(元素)的区别
- 节点node和元素element的区别
- 认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别
- 认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别
- 认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别
- [转]XML中元素(Element)与节点(Node)的区别
- 元素(Element)和结点(Node)的区别(org.w3c.dom)
- 元素(Element)和结点(Node)的区别(org.w3c.dom)
- [XML]元素与节点的区别与联系
- html——原生js与jquery创建元素节点区别
- 节点与元素的区别
- 元素(Element)和结点(Node)的区别(org.w3c.dom)
- Dom4j 中Node节点 和Element元素的区别
- 2.17-比较有头节点的单链表与无头节点插入元素的区别;
- JavaScript_查找指定节点之后的下一个元素节点_getNextElement(node)_JavaScript扩展