dom4j saxReader解析xml
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.util.List;
importorg.dom4j.Attribute;
importorg.dom4j.Document;
importorg.dom4j.DocumentException;
importorg.dom4j.Element;
importorg.dom4j.io.SAXReader;
publicclassXmlUtil{
privatestaticLoggerlogger=Logger.getLogger(XmlUtil.class);
/**
*使用sax解析本地xml文件
*@paramfileName文件名
*@return是否解析成功
*/
publicstaticbooleanparseXmlBySax(StringfileName){
//根据文件名称创建文件
Filefile=newFile(fileName);
//创建文件输入流读取文件
FileInputStreamfis=null;
SAXReaderreader=null;
Documentdocument=null;
if(!file.exists()){
logger.info("xml文件不存在");
returnfalse;
}
try{
fis=newFileInputStream(file);
//根据解析文件的编码格式设置编码
reader.setEncoding("gbk");
reader=newSAXReader();
//通过文件输入流获取document
document=reader.read(fis);
//获取跟元素
ElementrootElement=document.getRootElement();
//rootElement下包含的子元素
List<Element>list=rootElement.elements();
if(list!=null&&list.size()>0){
for(Elementelement:list){
//获取属性值(第一种方法)
Attributeattribute=element.attribute("name");
Stringvalue=attribute.getValue();
//获取属性值(第二种方法)
StringnewValue=element.attributeValue("name");
//获取element下的第一个userId元素
ElementuserElement=element.element("userId");
//获取userElement的文本
Stringtext=userElement.getTextTrim();
//进行所需要的业务逻辑处理
}
returntrue;
}
}catch(FileNotFoundExceptione){
logger.error("读取本地文件失败",e);
}catch(DocumentExceptione1){
logger.error("获取Document失败",e1);
}
returnfalse;
}
}