jibx工具使用和遇到的问题。环境部署、组件bind、解组编组

本文介绍如何使用JiBX实现XML与Java对象之间的相互转换,并详细展示了Maven环境下JiBX插件的配置过程及binding.xml的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开题:jibx内涵解组器unmarshalDocument()和编组器marshalObject(),可以实现java对象和xml的互相转换。依托与binding.xml配置文件。(复杂)

一、maven环境部署

        <plugin>
	            <groupId>org.jibx</groupId>
				<artifactId>jibx-maven-plugin</artifactId>
				<version>1.3.1</version>
				<configuration>
					<schemaBindingDirectory>src/main/jibx</schemaBindingDirectory>
					<includeSchemaBindings>
						<includeSchemaBindings>binding.xml</includeSchemaBindings>
					</includeSchemaBindings>
					<excludeSchemaBindings>
						<excludeSchemaBindings>*binding.out.xml</excludeSchemaBindings>
					</excludeSchemaBindings>
					<verbose>false</verbose>
				</configuration>
				<executions>
					<execution>
						<phase>process-classes</phase>
						<goals>
							<goal>bind</goal>
						</goals>
					</execution>
                </executions>
        </plugin>

2025/7/31,时光真快啊。发现当年的文章只有一个maven插件配置。 特来补充
 

maven配置添加

        <dependency>
            <groupId>org.jibx</groupId>
            <artifactId>jibx-run</artifactId>
            <version>1.2.5</version>
        </dependency>
        <dependency>
            <groupId>org.jibx</groupId>
            <artifactId>jibx-extras</artifactId>
            <version>1.2.5</version>
        </dependency>

JiBX 将 XML转换成java对象unmarshalDocument()


public class JiBXExample {
    public static void main(String[] args) {
        //ai生成的太久了
        try {
            // 创建绑定工厂
            IBindingFactory bfact = BindingDirectory.getFactory(Person.class);

            // 创建反序列化上下文
            IUnmarshallingContext uctx = bfact.createUnmarshallingContext();

            // 定义 XML 数据
            String xmlData = "<person><name>John</name><age>30</age></person>";

            // 将 XML 数据解析为 Java 对象
            Person person = (Person) uctx.unmarshalDocument(new StringReader(xmlData), null);

            // 输出解析后的 Java 对象信息
            System.out.println("Name: " + person.getName());
            System.out.println("Age: " + person.getAge());
        } catch (JiBXException e) {
            e.printStackTrace();
        }
    }
}

JiBX 将 java对象转换XML成marshalObject()

public class JiBXExample {
    public static void main(String[] args) {
       //ai生成的 时间太久了
       try {
            // 创建绑定工厂
            IBindingFactory bfact = BindingDirectory.getFactory(Person.class);

            // 创建序列化上下文
            IMarshallingContext mctx = bfact.createMarshallingContext();

            // 创建 Java 对象
            Person person = new Person();
            person.setName("John");
            person.setAge(30);

            // 将 Java 对象转换为 XML 数据
            StringWriter writer = new StringWriter();
            mctx.marshalDocument(person, null, null, writer);

            // 输出转换后的 XML 数据
            System.out.println(writer.toString());
        } catch (JiBXException e) {
            e.printStackTrace();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值