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节点是包含了关于元素节点的信息。
还是自己看书吧!!