dom4j操作xml的demo(分享)

网友投稿 291 2023-05-11


dom4j操作xml的demo(分享)

废话不多说,直接上代码

package com.cn.shop.util;

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStreamWriter;

import java.util.Iterator;

import java.util.List;

import org.dom4j.Attribute;

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 NH

*

*/

public class Xmlhttp://Utils {

public static Document getDocument() {

// 1.读取xml文件获取document对象

SAXReader reader = new SAXReader();

Document document = null;

try {

document = reader.read("D:\\itext\\27663.xml");

} catch (DocumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 2.通过解析xml的文本

/*

* String xmlFilePath = "D:\\itext\\27663.xml"; try { document =

* DocumentHelper.parseText(xmlFilePath); } catch (DocumentException e)

* { // TODO Auto-generated catch block e.printStackTrace(); } // 3.通过

* Document document = DocumentHelper.createDocument(); Element root =

* document.addElement("csdn");

*/

return document;

}

public static void anaXml() throws Exception {

// 读取xml的文本内容来创建document对象

SAXReader reader = new SAXReader();

try {

Document document = reader.read("D:\\itext\\27663.xml");

Element root = document.getRootElement();

System.out.println(root.getName());

getElement(root);

/* elementMethod(root); */

/*

* // 获取一个节点 Element element = root.elhttp://ement("title");

*

*

* //获取element的id属性节点对象 Attribute attr = element.attribute("id");

* //删除属性 element.remove(attr);

*

*

* // 添加新的节点 Element newElement = root.addElement("where"); //

* 设定新节点的值 newElement.setText("北京人民出版社,天津人民大学出版社");

*

* // 获取element中的where元素节点对象 Element author =

* element.element("where"); // 删除元素节点 boolean flag =

* element.remove(author); // 返回true代码删除成功,否则失败

* System.out.println(flag); // 添加CDATA区域

* element.addCDATA("红楼梦,是一部爱情小说."); // 写入到一个新的文件中 writer(document);

*/

} catch (DocumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/*

*

* 所有节点内容

*/

public static void getElement(Element root) {

// 获取当前节点的所有属性节点

List as = root.attributes();

for (Attribute a : 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());

}

Iterator el = root.elementIterator();

while (el.hasNext()) {

// 获取某个子节点对象

Element e = el.next();

// 对子节点进行遍历

getElement(e);

}

}

/**

* 介绍Element中的element方法和elements方法的使用

*

* @param node

*/

public static void elementMethod(Element node) {

// 获取node节点中,子节点的元素名称为西游记的元素节点。

Element e = node.element("info");

Element author = e.element("classification");

System.out.println(e.getName() + "----" + author.getText());

// 获取西游记这个元素节点 中,所有子节点名称为classification元素的节点 。

List authors = e.elements("classification");

for (Element aut : authors) {

System.out.println(aut.getText());

}

// 获取西游记这个元素节点 所有元素的子节点。

List elements = e.elements();

for (Element el : elements) {

System.out.println(el.getText());

}

}

/**

* 把document对象写入新的文件

*

* @param document

* @throws Exception

*/

public static void writer(Document document) throws Exception {

// 紧凑的格式

// OutputFormat format = OutputFormat.createCompactFormat();

// 排版缩进的格式

OutputFormat format = OutputFormat.createPrettyPrint();

// 设置编码

format.setEncoding("UTF-8");

// 创建XMLWriter对象,指定了写出文件及编码格式

/*

* XMLWriter writer = new XMLWriter(new OutputStreamWriter(new

* FileOutputStream(new File("src//a.xml")), "UTF-8"), format);

*/

File file = new File("c://index//大主宰.xml");

FileOutputStream fos = new FileOutputStream(file);

OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");

XMLWriter writer = new XMLWriter(osw);

// 写入

writer.write(document);

// 立即写入

writer.flush();

// 关闭操作

writer.close();

}

// 以下的代码为字符串与xml互转实例

public void test() throws Exception {

// 创建saxreader对象

SAXReader reader = new SAXReader();

// 读取一个文件,把这个文件转换成Document对象

Document document = reader.read(new File("src//c.xml"));

// 获取根元素

Element root = document.getRootElement();

// 把文档转换字符串

String docXmlText = document.asXML();

System.out.println(docXmlText);

System.out.println("---------------------------");

// csdn元素标签根转换的内容

String rootXmlText = root.asXML();

System.out.println(rootXmlText);

System.out.println("---------------------------");

// 获取java元素标签 内的内容

Element e = root.element("java");

System.out.println(e.asXML());

}

/**

* 创建一个document对象 往document对象中添加节点元素 转存为xml文件

*

* @throws Exception

*/

puSSSiLiOblic void test2() throws Exception {

Document document = DocumentHelper.createDocument();// 创建根节点

Element root = document.addElement("csdn");

Element java = root.addElement("java");

java.setText("java班");

Element ihttp://os = root.addElement("ios");

ios.setText("ios班");

writer(document);

}

/**

* 把一个文本字符串转换Document对象

*

* @throws Exception

*/

public void test1() throws Exception {

String text = "Java班Net班";

Document document = DocumentHelper.parseText(text);

Element e = document.getRootElement();

System.out.println(e.getName());

writer(document);

}

/**

* 把document对象写入新的文件

*

* @param document

* @throws Exception

*/

public void writer1(Document document) throws Exception {

// 紧凑的格式

// OutputFormat format = OutputFormat.createCompactFormat();

// 排版缩进的格式

OutputFormat format = OutputFormat.createPrettyPrint();

// 设置编码

format.setEncoding("UTF-8");

// 创建XMLWriter对象,指定了写出文件及编码格式

// XMLWriter writer = new XMLWriter(new FileWriter(new

// File("src//a.xml")),format);

XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(new File("src//c.xml")), "UTF-8"),

format);

// 写入

writer.write(document);

// 立即写入

writer.flush();

// 关闭操作

writer.close();

}

public static void main(String[] args) {

try {

anaXml();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java接口实现接口(java 接口实现接口)
下一篇:java接口必须实现吗(java接口必须实现吗知乎)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~