classes.xml:
<?xml version="1.0" encoding="utf-8" ?>
<class>
<stu hobby="read">
<name>杨过</name>
<sex>男</sex>
<age>30</age>
<intro>学习刻苦</intro>
</stu>
<stu>
<name>林青霞</name>
<sex>女</sex>
<age>32</age>
<intro>是一个好学生</intro>
</stu>
</class>
TestXml1.java
package com.hyj;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class TestXml1 {
public static void main(String []args) throws Exception{
//创建一个DocumentBuilderFactory,得到创建DOM解析器工厂
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
//通过DocumentBuilderFactory,得到一个DocumentBuilder对象(解析器对象)
DocumentBuilder dBuilder=dbf.newDocumentBuilder();
//指定解析哪个xml文件
Document document=dBuilder.parse("src/classes.xml");
// System.out.println(document);
read(document);
}
// static boolean flag=false;
//具体的查询某个学生的信息(先手第一个学生的所有信息)
//请考虑如何获得某个元素的属性值,(取出)
public static void read(Document doc){
NodeList n1=doc.getElementsByTagName("stu");
//取出第一个学生
Element stu=(Element)n1.item(0);
System.out.println("学生的爱好是"+stu.getAttribute("hobby"));
Element name=(Element) stu.getElementsByTagName("name").item(0);
System.out.println(name.getTextContent());
// //获得名为stu的节点
// NodeList nodelist=doc.getElementsByTagName("stu");
// //分别学生的node
// for(int a=0;a<nodelist.getLength();a++){
// Node node=nodelist.item(a);
// NodeList chilenodelist=node.getChildNodes();
// for(int b=0;b<chilenodelist.getLength();b++){
// if(chilenodelist.item(b).getNodeType()==chilenodelist.item(b).ELEMENT_NODE){
// System.out.println(chilenodelist.item(b).getNodeName()+" : "+chilenodelist.item(b).getTextContent());
//
// }
// }
// System.out.println("----------------------------------------");
// }
// System.out.println(nodelist.getLength());
//取出node的子节点
// NodeList nodelist=node.getChildNodes();
// for(int i=0;i<nodelist.getLength();i++){
// //再去显示
// Node n=nodelist.item(i);
// if(n.getNodeName().equals("stu")){
// flag=true;
// read(n);
// flag=false;
// }
// if(flag==true&&n.getNodeType()==n.ELEMENT_NODE)System.out.println(n.getNodeName());
// read(n);
// }
}
//遍历该xml文件
public static void list(Node node){
if(node.getNodeType()==node.ELEMENT_NODE)
System.out.println("名字:"+node.getNodeName());
//取出node的子节点
NodeList nodelist=node.getChildNodes();
for(int i=0;i<nodelist.getLength();i++){
//再去显示
Node n=nodelist.item(i);
list(n);
}
}
}