服务器之家

服务器之家 > 正文

java dom4j解析xml文件代码实例分享

时间:2019-10-23 14:09     来源/作者:java技术网

解析xml文件有两种方式,一种是利用Dom去解析,这种方式写起代码比较麻烦,对于刚入手的程序员来说比较容易出问题;第二种就是使用Dom4j包去解析
在要使用Dom4j包的时候,肯定要先引入包

 

复制代码代码如下:


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Iterator;

 

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @author Icer
*/

public class Dom4jDemo{
/**
*
* @param fileName 生成的xml文件名
* @param txtName 包含的对账文件txt文件名
*/
public void createXml(String fileName,String txtName) {
Document document = DocumentHelper.createDocument();
Element root = document.addElement("root");
Element head = root.addElement("head");
Element type = head.addAttribute("type", "0");
Element code = head.addAttribute("code", "3003");
Element yhlb = head.addElement("yhlb");
yhlb.setText("01");
Element username = head.addElement("username");
username.setText("gsyh");
Element password = head.addElement("password");
password.setText("zheshimima");
Element body = root.addElement("body");
Element data = body.addElement("data");
Element dzwjm = data.addElement("dzwjm");
dzwjm.setText(txtName);
try {
//写入文件
Writer fileWriter = new FileWriter(fileName);
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(fileWriter,format);
xmlWriter.write(document);
xmlWriter.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}

}
/**
*
* @param fileName 要解析的文件名
* @return 解析xml文件得到的需要对账的文件名
*/
public String parserXml(String fileName) {
String findFileName = "";
File inputXml = new File(fileName);
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(inputXml);
Element root = document.getRootElement();
for(Iterator i = root.elementIterator();i.hasNext();){
Element head = (Element) i.next();
for(Iterator j = head.elementIterator();j.hasNext();){
Element elem = (Element) j.next();
System.out.println(elem.getName()+":"+elem.getText());
for(Iterator k=elem.elementIterator();k.hasNext();){
Element last = (Element) k.next();
System.out.println(last.getName()+":"+last.getText());
findFileName = last.getText();
}

}
}
} catch (DocumentException e) {
System.out.println(e.getMessage()+"hello");
}
System.out.println("dom4j parserXml");
return findFileName;
}
/**
* 测试main方法
* @param args
*/
public static void main(String[] args){
Dom4jDemo demo = new Dom4jDemo();
demo.createXml("D://request.xml","test.txt");
demo.parserXml("e://request.xml");
}

 

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部