我正在开发需要将xml文件映射到基于java的对象的项目。
我用google搜索,发现JAXB是用于映射XML-Java并返回XML的标准库。
我正在开发应用程序,其中部署了许多XML格式的数据源文件。我想在运行时从这个XML文件中找出某些属性。 XML文件的一个这样的例子如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd">
<datasource jndi-name="java:jboss/datasources/FDMS_DemoDS" pool-name="FDMS_DemoDS">
<connection-url>jdbc:mysql://localhost:3306/demo?zeroDateTimeBehavior=convertToNull</connection-url>
<driver>com.mysql</driver>
<pool>
<max-pool-size>60</max-pool-size>
</pool>
<security>
<user-name>fduser</user-name>
<password>fdms!</password>
</security>
</datasource>
</datasources>
现在我想使用Java从上面的XML文件中获取 max-pool-size 和 connection-url 。我尝试使用JAXB,但不幸的是我遇到了一些问题。
有人可以帮我将这些XML映射到Java Object吗?
答案 0 :(得分:1)
您的最简单方法是下载XSD
文件并使用xjc
为您生成java类。
xjc datasources_1_0.xsd
有关 xjc 的更多信息,绑定编译器 here
答案 1 :(得分:0)
如果您只想读取Java中的xml文件,那么还有很多选择。 我个人更喜欢普通的蒸煮器。它简单易用。
https://commons.apache.org/proper/commons-digester/
就个人而言,如果您需要做的就是读取文件,我觉得JAXB有点过分。请注意,digester无法写回xml文件。如果你需要回写XML,请不要使用它。
答案 2 :(得分:0)
xpath / jxpath是您案例中性能最佳的选项。