dom4j saxReader解析xml

hongyuancao 2011-11-14

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;

}

}

相关推荐