Dom4j的使用
简介
Document对象现已使用很少,但是在医疗行业还大量使用,如今大部分已使用JSON格式进行数据传输。
引入依赖
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.1</version>
</dependency>
常用方法
1:Document DocumentHelper.createDocument()
创建Document对象;
2:Element addElement(String var1)
添加节点;
3:void setText(String var1)
给子节点其内容;
4:Element addAttribute(String var1, String var2)
添加属性及其内容;
5:List elements(String var1)
获取一组节点;
6:String elementText(String var1)
获取子节点其内容;
7:String attributeValue(String var1)
获取其属性值;
案例
创建document对象,最终将其写入文件中
@Test
public void DocumentCreat(){
//创建Document对象
Document document = DocumentHelper.createDocument();
//添加根节点
Element root = document.addElement("root");
//添加子节点及其内容
root.addElement("head").setText("1");
Element body = root.addElement("body");
//添加子节点
Element element = body.addElement("list");
Element row = element.addElement("row");
//添加属性及其内容
row.addAttribute("CJYLSH","123414342");
row.addAttribute("CXM","张三");
//添加子节点
Element element2 = element.addElement("row");
//添加属性及其内容
element2.addAttribute("CJYLSH","21321342435");
element2.addAttribute("CXM","李四");
//再创建一个对象,利用Document的clone属性进行添加节点
Document document2 = DocumentHelper.createDocument();
Element list2 = document2.addElement("root").addElement("body").addElement("list").addElement("row");
list2.addAttribute("CJYLSH","789576836");
list2.addAttribute("CXM","王五");
//将list2的子节点clone到document对象中
List<Element> body1 = document2.getRootElement().element("body").element("list").elements("row");
for (Element element1 : body1) {
element.add((Element)element1.clone());
}
//将数据写入到文件中
try{
/** 格式化输出,类型IE浏览一样 */
OutputFormat format = OutputFormat.createPrettyPrint();
/** 指定XML编码 */
format.setEncoding("utf-8");
format.setTrimText(false) //不设置,将无法输出换行符
/** 将document中的内容写入文件中 */
XMLWriter writer = new XMLWriter(new FileWriter(new File("D:\\docum.txt")),format);
writer.setEscapeText(false) //&符号就不会被转义
writer.write(document);
writer.close();
}catch(Exception ex){
ex.printStackTrace();
}
System.out.println(document.asXML());
}
从文件中读取document对象,并遍历,获取其节点及属性
@Test
public void DocumnetRead() throws MalformedURLException, DocumentException {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("D:\\docum.txt"));
//获取根节点
Element rootElement = document.getRootElement();
//获取其节点值 1
String head = rootElement.elementText("head");
System.out.println("head"+head);
//获取节点
Element body = rootElement.element("body");
//遍历 枚举名称为row节点
List<Element> list = body.element("list").elements("row");
for (Element element : list) {
//获取其属性值
String CJYLSH= element.attributeValue("CJYLSH");
System.out.println(CJYLSH);
}
}
Gitee地址
XFS