java解析xml

来源:互联网 发布:sina股票数据接口 编辑:程序博客网 时间:2024/05/16 11:09
package com.util.utils;


import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


public class Dom4jXml {

private List <String> list = new  ArrayList<String>();

public  void readXML(String filename){ 

        SAXReader reader = new SAXReader();   
        Document doc;   


           try {
doc = reader.read(new File(filename));
Element root = doc.getRootElement(); 
this.search(root);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}   
           new  SaveOrUpdate().change(list);
           
}   
public  void search(Element root){


  //接点迭代
  Iterator<?> it_element = root.elementIterator();
  while(it_element.hasNext()){
   Element element = (Element)it_element.next();
   if(!element.getText().equals("")){
//    System.out.println(element.getName()+"节点的值是");
    if("DeviceInformation".equals(element.getName())||"AlarmParameterRange".equals(element.getName())){
    String flag=element.attributeValue("flag");
    list.add(flag);
    }
   }else{
//    System.out.println(element.attributeValue("value")+"节点");
 
  
  String value=element.attributeValue("value");
  list.add(value);
   }
   
   search(element);
   }  
  }
  
public static void main(String[] args) {
String filename="D:/xml/xmlinfo.xml";
new  Dom4jXml().readXML(filename);
}
  
}