文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

利用dom4j如何实现操作xml文件中的demo

2023-05-31 13:24

关注

本篇文章为大家展示了利用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;public class XmlUtils {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 blocke.printStackTrace();}// 2.通过解析xml的文本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);} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void getElement(Element root) {// 获取当前节点的所有属性节点List<Attribute> as = root.attributes();for (Attribute a : as) {System.out.println("当前属性节点的名称:" + a.getName());}if (!root.getTextTrim().equals("")) {System.out.println("文本内容::::" + root.getText());}Iterator<Element> el = root.elementIterator();while (el.hasNext()) {// 获取某个子节点对象Element e = el.next();// 对子节点进行遍历getElement(e);}}public static void elementMethod(Element node) {// 获取node节点中,子节点的元素名称为西游记的元素节点。Element e = node.element("info");// 获取西游记元素节点中,子节点为chapter的元素节点(可以看到只能获取第一个作者元素节点)Element author = e.element("classification");System.out.println(e.getName() + "----" + author.getText());// 获取西游记这个元素节点 中,所有子节点名称为classification元素的节点 。List<Element> authors = e.elements("classification");for (Element aut : authors) {System.out.println(aut.getText());}// 获取西游记这个元素节点 所有元素的子节点。List<Element> elements = e.elements();for (Element el : elements) {System.out.println(el.getText());}}public static void writer(Document document) throws Exception {// 紧凑的格式// OutputFormat format = OutputFormat.createCompactFormat();// 排版缩进的格式OutputFormat format = OutputFormat.createPrettyPrint();// 设置编码format.setEncoding("UTF-8");// 创建XMLWriter对象,指定了写出文件及编码格式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());}public void test2() throws Exception {Document document = DocumentHelper.createDocument();// 创建根节点Element root = document.addElement("csdn");Element java = root.addElement("java");java.setText("java班");Element ios = root.addElement("ios");ios.setText("ios班");writer(document);}public void test1() throws Exception {String text = "<csdn><java>Java班</java><net>Net班</net></csdn>";Document document = DocumentHelper.parseText(text);Element e = document.getRootElement();System.out.println(e.getName());writer(document);}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 blocke.printStackTrace();}}}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯