您的位置:首页 > 其它

使用dom4j来解析,生成xml文件

2010-09-19 15:24 525 查看
使用代码之前,要有dom4j的jar文件,自行下载。

//代码中path是xml文件的绝对路径

//如果,已经有了一个xml文件,并且要往这个xml文件添加数据就是用

//addDataToXML()这个方法。

public voidaddDataToXML() throws DocumentException{

SAXReaderreader = new SAXReader();

Documentdocument = reader.read(new File(path));//从现有的xml文件中读取内容

Elementroot = document.getRootElement(); //读取根节点

this.addData(root,document); //添加数据

}

//如果,硬盘上没有xml文件,就是用这个方法创建xml

public void generateXML(){

Documentdocument = DocumentHelper.createDocument();
//创建xml内容

Elementroot = document.addElement("root"); //添加节点

this.addData(root,document);

}

//添加数据

publicvoid addData(Element root,Document document){

ElementdataElement = root.addElement("data");

dataElement.addComment("在
" + this.getCurrentDate() + " 生成的错误URL列表");
//添加注释

for(Stringstring : this.list){

ElementbadUrl = dataElement.addElement("badURLId");

badUrl.addText(string);

}

try {

Filefile = new File(path);

FileOutputStreamfStream = new FileOutputStream(file);

OutputFormatformat = OutputFormat.createPrettyPrint();
//xml输出样式

format.setEncoding("GBK");

XMLWriterwriter = new XMLWriter(fStream,format);
输出xml内容,并创建xml

writer.write(document);

writer.close();

} catch(IOException e) {

e.printStackTrace();

}

}

下面是解析xml格式字符串信息(以流的形式从网上获取xml内容并将其转换成字符串时使用此方法解析)

public List<Long> analyXMLProductString(String dataString){

Document document = null;

try {

document = DocumentHelper.parseText(dataString);

} catch (DocumentException e) {

e.printStackTrace();

return productIDList;

}

return readXMLDocument(document);

}//end analyDataMapUrls

public List<Long> readXMLDocument(Document document) {

Element root = document.getRootElement();

List<Long> productIDList = new ArrayList<Long>();

for (Iterator productID = root.elementIterator("productID"); productID

.hasNext();) {

Element foo = (Element) productID.next();

String id = foo.getTextTrim();

if (id != null && id != "") {

productIDList.add(Long.parseLong(id));

}

}// end for

return productIDList;

}// end readXMLDocument

其他的以后再补充。

参考资料:

http://gloryme.javaeye.com/blog/137613
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: