开题: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();
}
}
}