1.节点数目:如果你这定义的可见节点为n,那么实际数目会是2n+1,加上头尾和中间夹缝的TextNode就是这个数了。2.请看我的一个使用递归遍历DOM树的例子,会有你的答案
======================WalkDOM.java======================
import org.xml.sax.SAXException;
import org.apache.xerces.parsers.DOMParser;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.NamedNodeMap;
import java.io.IOException;public class WalkDOM { public DOMWalk() {
} public static void main(String [] args) throws IOException,SAXException{
DOMWalk doc=new DOMWalk();
DOMParser parser = new DOMParser();
parser.parse("mytest.xml");
Document dom = parser.getDocument();
walkAll(dom.getDocumentElement());
} private static void walkAll (Node start){
System.out.println(start.getNodeName()+" = "+start.getNodeValue());
if (start.getNodeType() == start.ELEMENT_NODE) {
NamedNodeMap startAttr = start.getAttributes();
for (int i = 0;i < startAttr.getLength();i++) {
Node attr = startAttr.item(i);
System.out.println(" Attribute: "+ attr.getNodeName()
+" = "+attr.getNodeValue());
}
}
for (Node child = start.getFirstChild();child != null;
child = child.getNextSibling()) {
walkAll(child);//==============
}
}
}3.Node是DOM中的基本接口,Element和Attr都继承了Node接口,
Element只是一种类型的Node,是 XML 的基本构件。元素可以有其它元素、文本节点或两者兼有来作为其子节点,元素节点还是唯一可以拥有属性的类型节点。Attr节点是包含了关于元素节点的信息。
还是自己看书吧!!
======================WalkDOM.java======================
import org.xml.sax.SAXException;
import org.apache.xerces.parsers.DOMParser;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.NamedNodeMap;
import java.io.IOException;public class WalkDOM { public DOMWalk() {
} public static void main(String [] args) throws IOException,SAXException{
DOMWalk doc=new DOMWalk();
DOMParser parser = new DOMParser();
parser.parse("mytest.xml");
Document dom = parser.getDocument();
walkAll(dom.getDocumentElement());
} private static void walkAll (Node start){
System.out.println(start.getNodeName()+" = "+start.getNodeValue());
if (start.getNodeType() == start.ELEMENT_NODE) {
NamedNodeMap startAttr = start.getAttributes();
for (int i = 0;i < startAttr.getLength();i++) {
Node attr = startAttr.item(i);
System.out.println(" Attribute: "+ attr.getNodeName()
+" = "+attr.getNodeValue());
}
}
for (Node child = start.getFirstChild();child != null;
child = child.getNextSibling()) {
walkAll(child);//==============
}
}
}3.Node是DOM中的基本接口,Element和Attr都继承了Node接口,
Element只是一种类型的Node,是 XML 的基本构件。元素可以有其它元素、文本节点或两者兼有来作为其子节点,元素节点还是唯一可以拥有属性的类型节点。Attr节点是包含了关于元素节点的信息。
还是自己看书吧!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货