Java Dom解析xml

//第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码.
<?xml version="1.0" encoding="UTF-8"?>
//下一行描述文档的根元素:<PeopleList>开始
<PeopleList>
//PeoList的子元素,People,拥有一个属性,id
    <People id="1">
    	//Name和Age都是People的子元素
        <Name en='zhangsan'>张三</Name>
        <Age>20</Age>
    </People>
    <People id="2">
        <Name en='lisi'>李四</Name>
        <Age>30</Age>
    </People>
</PeopleList>
//节点:XML文档中的所有节点组成了一个文档树(或节点树)。XML文档中的每个元素、属性、文本等都代表着树中的一个节点。
//元素节点(Element),XML标记元素,即标签<PeopleList>...</PeopleList>
 <People>... </People> <Name>...</Name> <Age>...</Age>
 //属性节点(Attribute),XML标记元素的属性,d="2" en='zhangsan'
 //文本节点(Text),包括在XML标记中的文本段,张三,20
 //文档类型节点(DocumentType),文档类型声明,﹤!DOCTYPE…﹥
 //注释节点Comment,XMLComment类注释节点,<!-- This is a comment --> 
 //后俩基本用不上

Java Dom解析xml
Java Dom解析xmlJava Dom解析xml

public class DomXML{
		File file = new File("");
		 // (1)建立DocumentBuilderfactory ,用于取得DocumentBuilder
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		// (2)通过DocumentBuilderfactory取得DocumentBuilder
            DocumentBuilder builder = null;
	     try {
             builder = factory.newDocumentBuilder();
         } catch (ParserConfigurationException e) {
          e.printStackTrace();
         }
         // (3)定义Document接口对象,通过DocumenBuilder类进行DOM树转换操作
            Document doc = null;
              try {
                doc = builder.parse("C:\\javatest\\bookstore.xml");
            } catch (SAXException e) {
              e.printStackTrace();
           } catch (IOException e) {
              e.printStackTrace();
          }
          //找到根节点
            Element root = document.getDocumentElement();
           NodeList peopleNodes = root.getElementsByTagName("People");
           List<Integer> idList = new ArrayList<Integer>();
          for(int i=0;i<peopleNodes.getLength();i++){   
          //获得每个People节点
                Element peopleElement = (Element) peopleNodes.item(i);
               idList.add(peopleElement.getAttribute("id"));
                //获得这个People节点的子节点
                NodeList childPeopleNodes = peopleElement.getChildNodes();
                for(int j=0;j<childPeopleNodes.getLength();j++){
                    //DOM解析时候注意子节点前面的空格也会被解析
                    if(childPeopleNodes.item(j) instanceof Element){
                        Element childPeopleElement = (Element) childPeopleNodes.item(j);
                        if(childPeopleElement.getNodeType()==Node.ELEMENT_NODE){  
                            if(childPeopleElement.getNodeName().equals("Name")){
                              
                            }
                            else if(childPeopleElement.getNodeName().equals("Age")){
                               
                            }
                        }
                    }
                }
                peopleList.add(people);
            }
}