<?xml version="1.0" encoding="UTF-8"?><Student>
<ss>
<banji  id="QQ">
<name>张三</name>
<Sex>男</Sex>
</banji>
<banji  id="QQ">
<name>张三</name>
<Sex>男</Sex>
</banji>
<banji  id="QQ">
<name>张三</name>
<Sex>男</Sex>
</banji>
</ss>
</Student>
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Test {
public static void main(String[] args) {
DocumentBuilderFactory doc=DocumentBuilderFactory.newInstance();//创建一个工厂实例
DocumentBuilder db;
try {
db = doc.newDocumentBuilder();//创建解析器
Document dt=db.parse("xml.xml");//得到一个文档对象
NodeList node=dt.getElementsByTagName("ss");这里我改成banji和去掉node.item(i).getFirstChild();的 .getFirstChild()能打印出QQ  但是我现在这种写法不对嘛?  另外问大家一个什么叫节点 什么叫元素 请大家举例说明 总共两个问题 谢谢各位大牛 for(int i=0;i<node.getLength();i++){
Node n=node.item(i).getFirstChild();
Element e=(Element)(n);
System.out.println(e.getAttribute("id"));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

解决方案 »

  1.   

    Node n=node.item(i).getFirstChild().getNextSibling();
    改成这样试试
      

  2.   

    元素就是节点的一种,你自己找篇文章看看就明白了,你这个目测是拿到了<ss>后面的空格
      

  3.   

    DOM API的陷阱。
    DOM树包含了被称为“不可忽略的空白”的文本节点,它是标签之间的空白(如回车符)。
      

  4.   

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setIgnoringElementContentWhitespace(true);//忽略缩进空白