java使用jaxb操作xml示例

yizhihongxing

Java使用JAXB(Java Architecture for XML Binding)操作XML,可以在Java对象和XML之间进行快速、方便的转换。下面是使用JAXB操作XML的完整攻略。

基础准备

使用JAXB需要按照以下步骤进行准备:

1. 引入JAXB依赖

在Maven项目中,需要在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>2.3.0.1</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.3.0.1</version>
</dependency>

2. 构建Java对象

使用JAXB操作XML,需要构建Java类来表示XML根元素以及子元素。可以通过使用@XmlRootElement、@XmlElement等注解将Java类映射为XML节点。

例如,如果有一个Person类,表示一个人的信息:

@XmlRootElement
public class Person {
    private String name;
    private int age;
    private String gender;

    // getter and setter
}

那么在XML中,就可以通过以下方式表示一个Person对象:

<person>
    <name>张三</name>
    <age>20</age>
    <gender>男</gender>
</person>

实现JAXB操作XML

1. 将Java对象转为XML文本

下面是一个将Java对象转为XML文本的示例:

public class JAXBUtil {
    public static String convertToXml(Object obj) throws JAXBException {
        StringWriter writer = new StringWriter();
        Marshaller marshaller = JAXBContext.newInstance(obj.getClass()).createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.marshal(obj, writer);
        return writer.toString();
    }
}

该方法将一个Java对象转换为一个XML文本字符串。其中,使用JAXBContext.newInstance()方法创建JAXB上下文,然后就可以使用Marshaller将对象转换为XML文本。在转换过程中,可以设置编码和格式化选项。

例如,如果有一个Person对象:

Person person = new Person();
person.setName("张三");
person.setAge(20);
person.setGender("男");

那么可以使用以下代码将其转换为XML文本:

String xml = JAXBUtil.convertToXml(person);
System.out.println(xml);

输出结果:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person>
    <name>张三</name>
    <age>20</age>
    <gender>男</gender>
</person>

2. 将XML文本转为Java对象

下面是一个将XML文本转为Java对象的示例:

public class JAXBUtil {
    public static <T> T convertToJava(String xml, Class<T> clazz) throws JAXBException {
        Unmarshaller unmarshaller = JAXBContext.newInstance(clazz).createUnmarshaller();
        StringReader reader = new StringReader(xml);
        return (T) unmarshaller.unmarshal(reader);
    }
}

该方法将一个XML文本字符串转换为一个Java对象。其中,使用JAXBContext.newInstance()方法创建JAXB上下文,然后就可以使用Unmarshaller将XML文本转换为Java对象。

例如,如果有以下XML文本:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person>
    <name>张三</name>
    <age>20</age>
    <gender>男</gender>
</person>

那么可以使用以下代码将其转换为Person对象:

Person person = JAXBUtil.convertToJava(xml, Person.class);
System.out.println(person.getName());

输出结果:

张三

示例说明

下面是两个示例,用于说明如何使用JAXB操作XML。

示例1. 将Java对象转换为XML文本

假设有一个Student类,表示一个学生的信息:

@XmlRootElement
public class Student {
    private String name;
    private int age;
    private String gender;
    private String school;

    // getter and setter
}

现在需要将一个Student对象转换为XML文本。可以使用以下代码:

Student student = new Student();
student.setName("李四");
student.setAge(18);
student.setGender("女");
student.setSchool("XX中学");

String xml = JAXBUtil.convertToXml(student);
System.out.println(xml);

输出结果:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student>
    <name>李四</name>
    <age>18</age>
    <gender>女</gender>
    <school>XX中学</school>
</student>

示例2. 将XML文本转换为Java对象

假设有以下XML文本,表示一个学生的信息:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student>
    <name>李四</name>
    <age>18</age>
    <gender>女</gender>
    <school>XX中学</school>
</student>

现在需要将该XML文本转换为一个Java对象。可以使用以下代码:

Student student = JAXBUtil.convertToJava(xml, Student.class);
System.out.println(student.getName());

输出结果:

李四

以上就是使用JAXB操作XML的完整攻略,以及两个示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java使用jaxb操作xml示例 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • SpringBoot中YAML语法及几个注意点说明

    下面是关于“SpringBoot中YAML语法及几个注意点说明”的完整攻略。 YAML语法 YAML(YAML Ain‘t Markup Language)是一种人类友好的数据序列化格式。与JSON和XML相比,它更容易阅读和编写,可以使代码更为简洁,从而提高开发效率。 基本语法 下面是YAML的基本语法: 字符串 字符串可以用单引号或双引号表示: str1…

    html 2023年5月30日
    00
  • 运行.bat文件乱码怎么办? win10运行Bat批处理文件时产生乱码处理办法

    当我们在Win10系统上运行批处理文件(Bat文件)时,有时会出现乱码现象。这个问题通常是由于编码格式不同引起的。下面,我来详细讲解win10运行Bat批处理文件时产生乱码处理办法。 1. 查看批处理文件的编码格式 要解决乱码问题,首先需要查看批处理文件的编码格式。方法如下: 打开要运行的批处理文件,复制其中一些文字。 打开记事本等文本编辑器,然后粘贴到编辑…

    html 2023年5月31日
    00
  • hlp是什么文件格式?.hlp文件怎么打开?

    hlp是什么文件格式? HLP是Windows帮助文件的文件格式,它是一种二进制文件格式,用于存储Windows应用程序的帮助文档。HLP文件通常包含应用程序的用户手册、帮助文档和其他相关信息。 .hlp文件怎么打开? 如果您需要打开.hlp文件,可以按照以下步骤操作: 使用Windows自带的帮助查看器:Windows自带了一个帮助查看器,可以用来打开.h…

    html 2023年5月17日
    00
  • 解决Git Bash中文乱码的问题

    解决Git Bash中文乱码问题的攻略如下: 问题描述 在使用Git Bash终端时,如果输入或者输出中包含中文字符,可能会出现乱码现象。这是由于Git Bash默认使用了UTF-8编码输出,而Windows下的命令提示符默认使用了GBK编码,导致中文字符无法正确显示。 解决方案 1. 修改终端环境变量 首先,我们可以通过修改Git Bash终端的环境变量来…

    html 2023年5月31日
    00
  • HTML文本格式化

    HTML文本格式化是将HTML代码中的文本内容按照特定的格式进行展示,包括字体、颜色、对齐方式等。 HTML 中有许多用来格式化文本的标签,如下表所示: 标签 描述 <b>…</b> 加粗标签中的字体 <em>…</em> 强调标签中的内容,并使标签中的字体倾斜 <i>…</i&g…

    Web开发基础 2023年3月15日
    00
  • drools中使用function的方法小结

    请看下面的攻略: Drools中使用Function的方法小结 简介 在Drools规则中,Function是一种方法,它的主要作用是封装业务逻辑,方便在规则中调用。规则中的Function与Java中的方法类似,可以定义参数和返回值,可以包含任意业务逻辑。 定义Function 在Drools规则文件中定义Function,可以使用函数式语法或Java语法…

    html 2023年5月30日
    00
  • win10系统下字体文件夹名称乱码怎么解决?

    针对“win10系统下字体文件夹名称乱码怎么解决?”的问题,我们可以采取以下步骤来解决它: 步骤一:修改系统设置 1.右键点击桌面上的“我的电脑”,选择“属性”,进入“系统”面板; 2.在系统面板中选择“高级系统设置”; 3.在弹出的“系统属性”窗口中选择“高级”选项卡; 4.在“高级”选项中找到“环境变量”并点击进入; 5.找到“系统变量”中的“LANG”…

    html 2023年5月31日
    00
  • Python中json库的操作指南

    下面是详细讲解“Python中json库的操作指南”的完整攻略。 什么是JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语言的子集,但也可以使用其它编程语言来解析生成。JSON的特点是数据结构简单清晰,易于读写,同时也易于机器解析和生成。 JSON在Python中的操作 Py…

    html 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部