本文将介绍
1.如何通过dom4j来对xml文档进行增、删、改、查
2.如何从本地读入xml文档
3.如何把xml文档转换成xml字符串
4.如何把xml输出以指定的编码输出到xml文档。
5.如何把xml字符串转换成document。
创建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");
递归显示xml文档内容
//文件格式:
<?xml version="1.0" encoding="GBK"?>
<!--以GBK的编码-->
<PDS>
<HEAD>
<TRNCOD>交易代码</TRNCOD>
<LGNNAM>登陆名称</LGNNAM>
</HEAD>
<body>
<name>张学友</name>
</body>
</PDS>
//dom4j遍历xml文档
=====================================
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class JavaCreateDom4j {
public static void main(String[] args){
//读取xml文档
SAXReader saxReader=new SAXReader();
Document doc=null;
try {
doc =saxReader.read(new FileInputStream(new File("d:/test/xml/dom4jtest1.xml")));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<Element> listEl=doc.getRootElement().elements();
print(listEl);
}
/**
* 递归显示文档内容
* @param els elements数组
*/
public static void print(List<Element> els){
for(Element el:els){
System.out.println("##"+el.getName()+"--value=="+el.getTextTrim());
if(el.hasContent()){
print(el.elements());
}
}
}
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();
}
}
1.如何通过dom4j来对xml文档进行增、删、改、查
2.如何从本地读入xml文档
3.如何把xml文档转换成xml字符串
4.如何把xml输出以指定的编码输出到xml文档。
5.如何把xml字符串转换成document。
创建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");
递归显示xml文档内容
//文件格式:
<?xml version="1.0" encoding="GBK"?>
<!--以GBK的编码-->
<PDS>
<HEAD>
<TRNCOD>交易代码</TRNCOD>
<LGNNAM>登陆名称</LGNNAM>
</HEAD>
<body>
<name>张学友</name>
</body>
</PDS>
//dom4j遍历xml文档
=====================================
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class JavaCreateDom4j {
public static void main(String[] args){
//读取xml文档
SAXReader saxReader=new SAXReader();
Document doc=null;
try {
doc =saxReader.read(new FileInputStream(new File("d:/test/xml/dom4jtest1.xml")));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<Element> listEl=doc.getRootElement().elements();
print(listEl);
}
/**
* 递归显示文档内容
* @param els elements数组
*/
public static void print(List<Element> els){
for(Element el:els){
System.out.println("##"+el.getName()+"--value=="+el.getTextTrim());
if(el.hasContent()){
print(el.elements());
}
}
}
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();
}
}