前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java生成XML格式

Java生成XML格式

作者头像
全栈程序员站长
发布于 2022-09-16 04:43:07
发布于 2022-09-16 04:43:07
1K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

工具:

dom4j-1.6.1.jar

相关类

  • import org.dom4j.Attribute;
  • import org.dom4j.Document;
  • import org.dom4j.DocumentException;
  • import org.dom4j.DocumentHelper;
  • import org.dom4j.Element;
  • import org.dom4j.io.SAXReader;
  • import org.dom4j.io.XMLWriter;

实例1

还是直接看例子吧,最终生成结果展示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>

<root>
  <username>张三</username>
  <password>123456</password>
</root>
代码如下:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    Document document = DocumentHelper.createDocument();
    //创建根节点
    Element root = document.addElement("root");
    //添加子节点
    Element username = root.addElement("username");
    Element password = root.addElement("password");
    //赋值
    username.addText("张三");
    password.addText("123456");
    String strXML = document.asXML();
    System.out.println(strXML);

实例2

适用于部分子节点封装成类,最终生成结果展示: 其中,结构是重复的,可以写成一个类Course.java;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>

<root>
  <username>张三</username>
  <password>123456</password>
  <courses>
    <course>
      <courseid>课程id</courseid>
      <coursename>语文课</coursename>
      <coursenum>007</coursenum>
      <courseteacher>王老师</courseteacher>
    </course>
    <course>
      <courseid>课程id2</courseid>
      <coursename>数学课</coursename>
      <coursenum>008</coursenum>
      <courseteacher>李老师</courseteacher>
    </course>
  </courses>
</root>
代码如下:

Course.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Course{
    String courseId;//课程id
    String courseName;//名称
    String courseNum;//课程号
    String courseTeacher;//老师
    
    public String getCourseId() {
        return courseId;
    }
    public void setCourseId(String courseId) {
        this.courseId = courseId;
    }
    public String getCourseName() {
        return courseName;
    }
    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }
    public String getCourseNum() {
        return courseNum;
    }
    public void setCourseNum(String courseNum) {
        this.courseNum = courseNum;
    }
    public String getCourseTeacher() {
        return courseTeacher;
    }
    public void setCourseTeacher(String courseTeacher) {
        this.courseTeacher = courseTeacher;
    }
}

生成xml代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	public static void main(String[] args) {
	    Document document = DocumentHelper.createDocument();
	    //创建根节点
        Element root = document.addElement("root");
        //添加子节点
        Element username = root.addElement("username");
        Element password = root.addElement("password");
        //赋值
        username.addText("张三");
        password.addText("123456");
        Element courses = root.addElement("courses");
        
        Course course = new Course();
        course.setCourseId("课程id");
        course.setCourseName("语文课");
        course.setCourseNum("007");
        course.setCourseTeacher("王老师");
        xmlUtil.beanToXml(course, courses, "course");
        
        Course course2 = new Course();
        course2.setCourseId("课程id2");
        course2.setCourseName("数学课");
        course2.setCourseNum("008");
        course2.setCourseTeacher("李老师");
        
        beanToXml(course2, courses, "course");
        String strXML = document.asXML();
        System.out.println(strXML);
	}

其中beanToXml方法如下,自己封装的;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	/**
	 * 将类生成xml
	 * @param object 对象
	 * @param objName 对象节点名称
	 * @return
	 */
	public  Element beanToXml(Object object,Element rootElement,String objName){
		Class clazz = object.getClass();
		Method[] methods = clazz.getDeclaredMethods();
		//Document document = DocumentHelper.createDocument(); 
		//设置xml的编码
		//document.setXMLEncoding(xmlEncoding);
		//设置根节点名称
		//Element root = document.addElement(rootName);
		//设置对象节点名称
		Element body = rootElement.addElement(objName);
		for (int i = 0; i < methods.length; i++) {
			if(methods[i].getName().substring(0,3).equals("get")){
				Element element = body.addElement(methods[i].getName().substring(3,methods[i].getName().length()).toLowerCase());
				try {
					if(methods[i].invoke(object) != null){
						element.addText(methods[i].invoke(object).toString().trim());
					}else{
						element.addText("");
					}
				} catch (IllegalArgumentException e) {
					// TODO Auto-generated catch block
					CLS_InterfaceLogger.error(e.getMessage(), e);
				} catch (IllegalAccessException e) {
					// TODO Auto-generated catch block
					CLS_InterfaceLogger.error(e.getMessage(), e);
				} catch (InvocationTargetException e) {
					// TODO Auto-generated catch block
					CLS_InterfaceLogger.error(e.getMessage(), e);
				}
			}
		}
		//return document.asXML();
		return body;
	}

总结:

脑子里要生成的结构,一步一步的添加或循环创建子节点,多写几次就ok了!

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162481.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java实现——Dom4j读写XML文件
解析DOM4J是一个开源XML解析包,采用了Java集合框架并完全支持DOM,SAX和JAXP。最大的特色是使用了大量的接口,主要接口都在org.dom4j里定义。
全栈程序员站长
2022/09/14
1.3K0
Java实现——Dom4j读写XML文件
Dom4J生成xml和包含CDATA问题
在 java注解生成xml和包含CDATA问题里面做了介绍,这里直接贴代码。 1:生成xml的java文件
全栈程序员站长
2022/07/19
6530
xml解析系列(一)——用dom4j解析xml
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/10/30
3.1K0
xml解析系列(一)——用dom4j解析xml
dom4j解析XML常用方法
基本使用 //读取xml SAXReader reader = new SAXReader(); Document document = reader.read(new File("input.xml")); // 获取根节点 Element root = document.getRootElement(); // 获取孩子节点 Iterator<Element> it1 = root.elementIterator(); // 获取属性 Iterator<Attribute> at
乱码三千
2021/07/29
9620
JAVA基于dom4j实现对XML操作「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159196.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
3890
JAVA基于dom4j实现对XML操作「建议收藏」
dom4j Quick start
One of the first things you’ll probably want to do is to parse an XML document of some kind. This is easy to do in dom4j. The following code demonstrates how to this.
全栈程序员站长
2021/05/19
5580
XML封装与验证消息
Document document = DocumentHelper.createDocument(); document.setXMLEncoding(ChARSET_UTF_8); Element root = document.addElement("message"); Element head = root.addElement("head"); head.addElement("field").addAttribute("name"," ").setText(""); Element bo
用户3003813
2018/09/06
6260
使用Dom4j解析XML
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它.
全栈程序员站长
2022/07/05
1.3K0
使用Dom4j解析XML
java 生成xml dom4j_Java生成xml——DOM4J生成
一、四种方式的总结 【DOM】 DOM方式生成xml是基于DOM树的结构,整个DOM树会存在内存中,所以使用DOM方式可以频繁的修改xml的内容,但是因为DOM树是存在内存中的,所以对内存消耗较大。DOM方式比较适用于需要频繁删改的情况。 【SAX】 SAX方式生成xml是逐步写
全栈程序员站长
2022/09/15
7940
webservice传递特殊字符时的解决的方法
webservice soap报文是xml格式交互的,当中针对特殊字符传递无法解析,导致数据处理失败。
全栈程序员站长
2022/07/12
1.9K0
java知识点——xml补充
1. XML解析 1.1 XML解析思路 DOM解析 Document Object Model 文件对象模型 把XML整个文件看做一个Document对象,每一个节点看做一个Element,节点中有Attribute,或者当前节点中存在Text文本内容。 DOM是将整个XML文件读取到计算机内存中,可以进行CRUD操作。 缺点: 占用了大量内存空间 适用的环境: 服务器对于XML文件的解析过程。 SAX解析 逐行读取,给予一定的事件操作。 读取一行内容,释放上一行内容,可以有效的节
用户7073689
2020/03/18
4770
dom4j 使用总结
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件 dom4j的使用方法简单总结来说如下: ①可以创建一个新的xml文件 ②利用SAXReader和File对象创建一个已存在的xml文件的一个Document对象 ③利用Document对象的getRootElement()方法获取根节点,返回值类型为Element ④利用根节点,可以用迭代器遍历子节点,也可以直接利用XPATH语法查找节点,对节点元素、属性读取或更改 ⑤将更改写入xml文件保存 下面来看简单的实例: ①创建一个新的
欠扁的小篮子
2018/04/10
1.1K0
怎样将生成的xml文件进行格式化
最近有在项目中生成xml文件,但是生成之后的xml文件打开之后,是一坨,看起来真的不美观,要是能够格式化输出来就好了。
全栈程序员站长
2022/09/07
1.4K0
java saxreader_java解析XML文件—SAXReader
Document document=new SAXReader.reader(“xml文路径/文件名xxx.xml”);//得到Document对象
全栈程序员站长
2022/07/02
3760
java dom4j生成xml格式化_Java DOM4J方式生成XML的方法「建议收藏」
通过DocumentHelper类的createDocument()创建Document对象
全栈程序员站长
2022/09/17
2.4K0
java dom4j解析_java dom4j解析器使用
DOM4J是一个开源的,基于Java的库来解析XML文档,它具有高度的灵活性,高性能和内存效率的API。这是java的优化,使用Java集合像列表和数组。它可以使用DOM,SAX,XPath和XSLT。它解析大型XML文档时具有极低的内存占用。
全栈程序员站长
2022/09/17
1.2K0
Java---XML的解析(2)-DOM4J解析/Xpath
Dom4j: Dom SUN dom在加载时,将所有元素全部加载内存 DOM4j - 第三方。
谙忆
2021/01/21
1.6K0
Java---XML的解析(2)-DOM4J解析/Xpath
Android 创建与解析XML(五)—— Dom4j方式
dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP. 
阳光岛主
2019/02/19
1.4K0
Java_XML解析精讲
        XML文件格式是纯文本格式,在许多方面类似于HTML,XML由XML元素组成,每个XML元素包括一个开始标记(),一个结束标记()以及两个标记之间的内容,例如,可以将XML元素标记为价格、订单编号或名称。标记是对文档存储格式和逻辑结构的描述。在形式上,标记中可能包括注释、引用、字符数据段、起始标记、结束标记、空元素、文档类型声明( DTD)和序言。 具体规则如下:
红目香薰
2023/03/09
5760
Java_XML解析精讲
Java中使用DOM4J来生成xml文件和解析xml文件
一、前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理一下自己的理解,只适合刚刚学习的,一起理解!今天我们把解析xml文件和生成xml文件在一起来展示. 二、准备依赖 <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.
掉发的小王
2022/07/11
1.6K0
Java中使用DOM4J来生成xml文件和解析xml文件
相关推荐
Java实现——Dom4j读写XML文件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文