java中XML元素和节点的区别

一、概念

1、元素是一个小范围的定义,必须是含有完整信息的结点才是一个元素。

一个元素一定是一个结点,但是一个结点不一定是一个元素。
2、什么是node?
NODE是相对TREE这种数据结构而言的。TREE就是由NODE组成。这个部分你可以参考离散数学的树图。
node有几个子类型:Element, Text, Attribute, RootElement, Comment, Namespace等
3、什么是element?
ELEMENT则是XML里的概念,例如就是元素,是XML中的数据的组成部分之一。

二、具体区别分析

1、区别介绍 Element是Node的扩展,所以也更实用一些。例如,用Element可以方便的获得Node的属性getAttribute(String attrName)如果用Node,可以得到一个属性集,还要进一步检索才可得到想要的属性。一个结点不一定是一个元素,而一个元素一定是一个结点。 Element是Node的子集,XmlNode表示一个节点,包括XmlElement(元素)和XmlAttribute(属性)等。

二、具体区别分析

1、区别介绍 Element是Node的扩展,所以也更实用一些。例如,用Element可以方便的获得Node的属性getAttribute(String attrName)如果用Node,可以得到一个属性集,还要进一步检索才可得到想要的属性。一个结点不一定是一个元素,而一个元素一定是一个结点。 Element是Node的子集,XmlNode表示一个节点,包括XmlElement(元素)和XmlAttribute(属性)等。

三、具体功能实现

(1)先取得nodeString strID = node.getAttributes().getNamedItem(“id”).getNodeValue(); String strName = node.getAttributes().getNamedItem(“name”).getNodeValue();

(2)先取得elementString strID = element.getAttribute(“id”);
String strName = element.getAttribute(“name”);

2、想使用一个通用的方法,将一个Element中的所有属性取出来。但不知道该Element有多少个属性,并且不知道每个属性的name是什么。
nodeNamedNodeMap nnm = node.getAttributes();
for(int i=0;i < nnm.getLength();i++){
System.out.println(nnm.item(i).getNodeName());
System.out.println(nnm.item(i).getNodeValue());
}

本篇博文是小白我在大神的肩膀上,吸收整理出来的。衷心感谢大神们的无私奉献、厚薄积发的精神,这种品质给我们小白在技术上的成长带来了很大的帮助。
参考:
http://a52071453.iteye.com/blog/1697817

(0)

相关推荐