dom4j解析和处理xml
2013-03-22 14:54
211 查看
本文将介绍
1.如何通过dom4j来对xml文档进行增、删、改、查
2.如何从本地读入xml文档
3.如何把xml文档转换成xml字符串
4.如何把xml输出以指定的编码输出到xml文档。
5.如何把xml字符串转换成document。
package com.xml.dom4j;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
/**
* 创建document
* @return
*/
public static Document createDomFJ(){
Document doc =DocumentHelper.createDocument();
return doc;
}
/**
* 给文档添加根节点
* @param elName 子节点名称
* @param doc 文档
* @return
*/
public static Element appendChile(String elName,Document doc){
Element root=doc.addElement(elName);
return root;
}
/**
* 给父节点添加子节点
* @param elName 子节点的名称
* @param el 父节点
* @return
*/
public static Element appendChile(String elName,Element el){
Element sub=el.addElement(elName);
return sub;
}
/**
* 添加子节点及其对应的值
* @param elName 子节点的名称
* @param value 子节点的值
* @param el 父节点
*/
public static void appendChile(String elName,String value,Element el){
Element sub=el.addElement(elName);
sub.setText(value);
}
/**
* 根目录添加注释
* @param explain 说明文字
* @param doc
*/
public static void addCommend(String explain,Document doc){
doc.addComment(explain);
}
/**
* 为子节点添加说明
* @param explain
* @param element
*/
public static void addCommend(String explain,Element element){
element.addComment(explain);
}
/**
* 为节点添加属性
* @param attName
* @param attValue
* @param element
*/
public static void addAttribute(String attName,String attValue,Element element){
element.addAttribute(attName, attValue);
}
}
asXML可以将文档或元素转换成一段xml字符串
String docStr=doc.asXML(); //把xml文档转换成字符串
System.out.println("docStr==="+docStr);
String pdsStr=pds.asXML(); //把父节点转换成字符串
System.out.println("pdsStr=="+pdsStr);
//结果如插图所示
parseText完成将xml字符串转换成Doc的功能
String pdsStr=<PDS><HEAD><TRNCOD>交易代码</TRNCOD><LGNNAM>登陆名称</LGNNAM></HEAD></PDS>;
Document docpds=null;
try {
docpds=DocumentHelper.parseText(docStr);
docpds.setXMLEncoding("GBK");
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
XMLWriter类可以把文档写入到文件中,并设置编码“GBK”
public class JavaCreateDom4j {
public static void main(String[] args){
//引用http://www.blogjava.net/hoojo/archive/2011/08/11/356310.html
Document doc=createDomFJ();
doc.addComment("以GBK的编码");
Element pds=doc.addElement("PDS");
/*格式化输出*/
org.dom4j.io.OutputFormat format=org.dom4j.io.OutputFormat.createPrettyPrint();//紧缩
format.setEncoding("GBK"); //设置GBK编码
Element head=pds.addElement("HEAD");
Element trancod=head.addElement("TRNCOD");
trancod.setText("交易代码");
Element lgnnam=head.addElement("LGNNAM");
lgnnam.setText("登陆名称");
try {
XMLWriter writer=new XMLWriter(new OutputStreamWriter(new FileOutputStream("d:/test/xml/dom4jtest1.xml")),format);
writer.write(doc);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
递归显示xml文档内容
01 //文件格式:
02 <?xml version="1.0" encoding="GBK"?>
03 <!--以GBK的编码-->
04 <PDS>
05 <HEAD>
06 <TRNCOD>交易代码</TRNCOD>
07 <LGNNAM>登陆名称</LGNNAM>
08 </HEAD>
09 <body>
10 <name>张学友</name>
11 </body>
12 </PDS>
13
15 import java.io.File;
16 import java.io.FileInputStream;
17 import java.io.FileNotFoundException;
18 import java.util.List;
19
20 import org.dom4j.Document;
21 import org.dom4j.DocumentException;
22 import org.dom4j.DocumentHelper;
23 import org.dom4j.Element;
24 import org.dom4j.Node;
25 import org.dom4j.io.SAXReader;
26
27
28 public class JavaCreateDom4j {
29 public static void main(String[] args){
30 //读取xml文档
31 SAXReader saxReader=new SAXReader();
32 Document doc=null;
33 try {
34 doc =saxReader.read(new FileInputStream(new File("d:/test/xml/dom4jtest1.xml")));
35 } catch (FileNotFoundException e) {
36 // TODO Auto-generated catch block
37 e.printStackTrace();
38 } catch (DocumentException e) {
39 // TODO Auto-generated catch block
40 e.printStackTrace();
41 }
42 List<Element> listEl=doc.getRootElement().elements();
43 print(listEl);
44 }
45 /**
46 * 递归显示文档内容
47 * @param els elements数组
48 */
49 public static void print(List<Element> els){
50 for(Element el:els){
51 System.out.println("##"+el.getName()+"--value=="+el.getTextTrim());
52 if(el.hasContent()){
53 print(el.elements());
54 }
55 }
56 }
57 //结果见图”dom4j遍历xml文档“
1.如何通过dom4j来对xml文档进行增、删、改、查
2.如何从本地读入xml文档
3.如何把xml文档转换成xml字符串
4.如何把xml输出以指定的编码输出到xml文档。
5.如何把xml字符串转换成document。
package com.xml.dom4j;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
/**
* 创建document
* @return
*/
public static Document createDomFJ(){
Document doc =DocumentHelper.createDocument();
return doc;
}
/**
* 给文档添加根节点
* @param elName 子节点名称
* @param doc 文档
* @return
*/
public static Element appendChile(String elName,Document doc){
Element root=doc.addElement(elName);
return root;
}
/**
* 给父节点添加子节点
* @param elName 子节点的名称
* @param el 父节点
* @return
*/
public static Element appendChile(String elName,Element el){
Element sub=el.addElement(elName);
return sub;
}
/**
* 添加子节点及其对应的值
* @param elName 子节点的名称
* @param value 子节点的值
* @param el 父节点
*/
public static void appendChile(String elName,String value,Element el){
Element sub=el.addElement(elName);
sub.setText(value);
}
/**
* 根目录添加注释
* @param explain 说明文字
* @param doc
*/
public static void addCommend(String explain,Document doc){
doc.addComment(explain);
}
/**
* 为子节点添加说明
* @param explain
* @param element
*/
public static void addCommend(String explain,Element element){
element.addComment(explain);
}
/**
* 为节点添加属性
* @param attName
* @param attValue
* @param element
*/
public static void addAttribute(String attName,String attValue,Element element){
element.addAttribute(attName, attValue);
}
}
asXML可以将文档或元素转换成一段xml字符串
String docStr=doc.asXML(); //把xml文档转换成字符串
System.out.println("docStr==="+docStr);
String pdsStr=pds.asXML(); //把父节点转换成字符串
System.out.println("pdsStr=="+pdsStr);
//结果如插图所示
parseText完成将xml字符串转换成Doc的功能
String pdsStr=<PDS><HEAD><TRNCOD>交易代码</TRNCOD><LGNNAM>登陆名称</LGNNAM></HEAD></PDS>;
Document docpds=null;
try {
docpds=DocumentHelper.parseText(docStr);
docpds.setXMLEncoding("GBK");
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
XMLWriter类可以把文档写入到文件中,并设置编码“GBK”
public class JavaCreateDom4j {
public static void main(String[] args){
//引用http://www.blogjava.net/hoojo/archive/2011/08/11/356310.html
Document doc=createDomFJ();
doc.addComment("以GBK的编码");
Element pds=doc.addElement("PDS");
/*格式化输出*/
org.dom4j.io.OutputFormat format=org.dom4j.io.OutputFormat.createPrettyPrint();//紧缩
format.setEncoding("GBK"); //设置GBK编码
Element head=pds.addElement("HEAD");
Element trancod=head.addElement("TRNCOD");
trancod.setText("交易代码");
Element lgnnam=head.addElement("LGNNAM");
lgnnam.setText("登陆名称");
try {
XMLWriter writer=new XMLWriter(new OutputStreamWriter(new FileOutputStream("d:/test/xml/dom4jtest1.xml")),format);
writer.write(doc);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
递归显示xml文档内容
01 //文件格式:
02 <?xml version="1.0" encoding="GBK"?>
03 <!--以GBK的编码-->
04 <PDS>
05 <HEAD>
06 <TRNCOD>交易代码</TRNCOD>
07 <LGNNAM>登陆名称</LGNNAM>
08 </HEAD>
09 <body>
10 <name>张学友</name>
11 </body>
12 </PDS>
13
15 import java.io.File;
16 import java.io.FileInputStream;
17 import java.io.FileNotFoundException;
18 import java.util.List;
19
20 import org.dom4j.Document;
21 import org.dom4j.DocumentException;
22 import org.dom4j.DocumentHelper;
23 import org.dom4j.Element;
24 import org.dom4j.Node;
25 import org.dom4j.io.SAXReader;
26
27
28 public class JavaCreateDom4j {
29 public static void main(String[] args){
30 //读取xml文档
31 SAXReader saxReader=new SAXReader();
32 Document doc=null;
33 try {
34 doc =saxReader.read(new FileInputStream(new File("d:/test/xml/dom4jtest1.xml")));
35 } catch (FileNotFoundException e) {
36 // TODO Auto-generated catch block
37 e.printStackTrace();
38 } catch (DocumentException e) {
39 // TODO Auto-generated catch block
40 e.printStackTrace();
41 }
42 List<Element> listEl=doc.getRootElement().elements();
43 print(listEl);
44 }
45 /**
46 * 递归显示文档内容
47 * @param els elements数组
48 */
49 public static void print(List<Element> els){
50 for(Element el:els){
51 System.out.println("##"+el.getName()+"--value=="+el.getTextTrim());
52 if(el.hasContent()){
53 print(el.elements());
54 }
55 }
56 }
57 //结果见图”dom4j遍历xml文档“
相关文章推荐
- xml内容解析,包含命名空间时需特殊处理(dom4j)
- java 解析xml是使用dom4j空行以及中文乱码的处理
- jersey接口处理微信支付回调,dom4j解析微信消息xml
- 【慕课笔记】4-4 应用DOM4J及JDOM方式解析XML—JDOM解析时乱码的处理
- Dom4j解析XML文件,处理来至XML的数据信息
- 使用JDOM和DOM4j解析XML
- DOM4j解析xml文件
- DOM4J解析XML文档
- 结合dom4j和反射机制解析xml并实例化对象
- 用dom4j解析xml 报java.lang.NoClassDefFoundError:org/jaxen/JaxenException
- java dom4j xml生成,解析
- 使用 dom4j 解析 XML(转自IBM)
- JAVA基础——使用DOM4J 解析xml
- 实习:UT report 部署过程:dom4j解析xml
- dom4j解析xml字符串实例
- Dom4j解析XML
- JAVA DOM4J解析XML
- dom4j生成和解析xml文件
- dom4j处理超大XML
- 采用DOM4J中的SAXReader解析webservice返回的XML文件