dom4j操作xml的demo(分享)
废话不多说,直接上代码
packagecom.cn.shop.util;
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.OutputStreamWriter;
importjava.util.Iterator;
importjava.util.List;
importorg.dom4j.Attribute;
importorg.dom4j.Document;
importorg.dom4j.DocumentException;
importorg.dom4j.DocumentHelper;
importorg.dom4j.Element;
importorg.dom4j.io.OutputFormat;
importorg.dom4j.io.SAXReader;
importorg.dom4j.io.XMLWriter;
/**
*
*@authorNH
*
*/
publicclassXmlUtils{
publicstaticDocumentgetDocument(){
//1.读取xml文件获取document对象
SAXReaderreader=newSAXReader();
Documentdocument=null;
try{
document=reader.read("D:\\itext\\27663.xml");
}catch(DocumentExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
//2.通过解析xml的文本
/*
*StringxmlFilePath="D:\\itext\\27663.xml";try{document=
*DocumentHelper.parseText(xmlFilePath);}catch(DocumentExceptione)
*{//TODOAuto-generatedcatchblocke.printStackTrace();}//3.通过
*Documentdocument=DocumentHelper.createDocument();Elementroot=
*document.addElement("csdn");
*/
returndocument;
}
publicstaticvoidanaXml()throwsException{
//读取xml的文本内容来创建document对象
SAXReaderreader=newSAXReader();
try{
Documentdocument=reader.read("D:\\itext\\27663.xml");
Elementroot=document.getRootElement();
System.out.println(root.getName());
getElement(root);
/*elementMethod(root);*/
/*
*//获取一个节点Elementelement=root.element("title");
*
*
*//获取element的id属性节点对象Attributeattr=element.attribute("id");
*//删除属性element.remove(attr);
*
*//添加新属性element.addAttribute("author","作者");
*
*//添加新的节点ElementnewElement=root.addElement("where");//
*设定新节点的值newElement.setText("北京人民出版社,天津人民大学出版社");
*
*//获取element中的where元素节点对象Elementauthor=
*element.element("where");//删除元素节点booleanflag=
*element.remove(author);//返回true代码删除成功,否则失败
*System.out.println(flag);//添加CDATA区域
*element.addCDATA("红楼梦,是一部爱情小说.");//写入到一个新的文件中writer(document);
*/
}catch(DocumentExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
/*
*
*所有节点内容
*/
publicstaticvoidgetElement(Elementroot){
//获取当前节点的所有属性节点
Listas=root.attributes();
for(Attributea:as){
System.out.println("当前属性节点的名称:"+a.getName());
/*
*System.out.println("当前属性节点的内容:"+a.getText());
*
*System.out.println("当前属性节点的值:"+a.getValue());
*/
}
if(!root.getTextTrim().equals("")){
System.out.println("文本内容::::"+root.getText());
}
Iteratorel=root.elementIterator();
while(el.hasNext()){
//获取某个子节点对象
Elemente=el.next();
//对子节点进行遍历
getElement(e);
}
}
/**
*介绍Element中的element方法和elements方法的使用
*
*@paramnode
*/
publicstaticvoidelementMethod(Elementnode){
//获取node节点中,子节点的元素名称为西游记的元素节点。
Elemente=node.element("info");
//获取西游记元素节点中,子节点为chapter的元素节点(可以看到只能获取第一个作者元素节点)
Elementauthor=e.element("classification");
System.out.println(e.getName()+"----"+author.getText());
//获取西游记这个元素节点中,所有子节点名称为classification元素的节点。
Listauthors=e.elements("classification");
for(Elementaut:authors){
System.out.println(aut.getText());
}
//获取西游记这个元素节点所有元素的子节点。
Listelements=e.elements();
for(Elementel:elements){
System.out.println(el.getText());
}
}
/**
*把document对象写入新的文件
*
*@paramdocument
*@throwsException
*/
publicstaticvoidwriter(Documentdocument)throwsException{
//紧凑的格式
//OutputFormatformat=OutputFormat.createCompactFormat();
//排版缩进的格式
OutputFormatformat=OutputFormat.createPrettyPrint();
//设置编码
format.setEncoding("UTF-8");
//创建XMLWriter对象,指定了写出文件及编码格式
/*
*XMLWriterwriter=newXMLWriter(newOutputStreamWriter(new
*FileOutputStream(newFile("src//a.xml")),"UTF-8"),format);
*/
Filefile=newFile("c://index//大主宰.xml");
FileOutputStreamfos=newFileOutputStream(file);
OutputStreamWriterosw=newOutputStreamWriter(fos,"UTF-8");
XMLWriterwriter=newXMLWriter(osw);
//写入
writer.write(document);
//立即写入
writer.flush();
//关闭操作
writer.close();
}
//以下的代码为字符串与xml互转实例
publicvoidtest()throwsException{
//创建saxreader对象
SAXReaderreader=newSAXReader();
//读取一个文件,把这个文件转换成Document对象
Documentdocument=reader.read(newFile("src//c.xml"));
//获取根元素
Elementroot=document.getRootElement();
//把文档转换字符串
StringdocXmlText=document.asXML();
System.out.println(docXmlText);
System.out.println("---------------------------");
//csdn元素标签根转换的内容
StringrootXmlText=root.asXML();
System.out.println(rootXmlText);
System.out.println("---------------------------");
//获取java元素标签内的内容
Elemente=root.element("java");
System.out.println(e.asXML());
}
/**
*创建一个document对象往document对象中添加节点元素转存为xml文件
*
*@throwsException
*/
publicvoidtest2()throwsException{
Documentdocument=DocumentHelper.createDocument();//创建根节点
Elementroot=document.addElement("csdn");
Elementjava=root.addElement("java");
java.setText("java班");
Elementios=root.addElement("ios");
ios.setText("ios班");
writer(document);
}
/**
*把一个文本字符串转换Document对象
*
*@throwsException
*/
publicvoidtest1()throwsException{
Stringtext="Java班 Net班 ";
Documentdocument=DocumentHelper.parseText(text);
Elemente=document.getRootElement();
System.out.println(e.getName());
writer(document);
}
/**
*把document对象写入新的文件
*
*@paramdocument
*@throwsException
*/
publicvoidwriter1(Documentdocument)throwsException{
//紧凑的格式
//OutputFormatformat=OutputFormat.createCompactFormat();
//排版缩进的格式
OutputFormatformat=OutputFormat.createPrettyPrint();
//设置编码
format.setEncoding("UTF-8");
//创建XMLWriter对象,指定了写出文件及编码格式
//XMLWriterwriter=newXMLWriter(newFileWriter(new
//File("src//a.xml")),format);
XMLWriterwriter=newXMLWriter(newOutputStreamWriter(newFileOutputStream(newFile("src//c.xml")),"UTF-8"),
format);
//写入
writer.write(document);
//立即写入
writer.flush();
//关闭操作
writer.close();
}
publicstaticvoidmain(String[]args){
try{
anaXml();
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
以上这篇dom4j操作xml的demo(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。