【发布时间】:2018-07-26 09:59:16
【问题描述】:
我想通过JavaFX 应用程序中的弹出窗口导入XML 文件。导入后,我想阅读它。例如,我想为每个<testbus> 存储<index> 和<tb_name> 在List 或类似的东西,其中<index> 是index 的List 和<tb_name>是List 的element。我也希望每个<testbus> 都可以访问 bitfields 及其名称。所以我在考虑List 的List。我找到了一个名为JAXB 的java 库,它可以解析XML 文件,但我不知道如何实现我想要的。
这是XML 文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<testbuses>
<testbus>
<index>00</index>
<tb_name>buffermngr00</tb_name>
<bitfield0>
<bitf_name>aaa_00</bitf_name>
</bitfield0>
<bitfield1>
<bitf_name>aaa_01</bitf_name>
</bitfield1>
<bitfield2>
<bitf_name>aaa_02</bitf_name>
</bitfield2>
<bitfield3>
<bitf_name>aaa_03</bitf_name>
</bitfield3>
<bitfield4>
<bitf_name>aaa_03</bitf_name>
</bitfield4>
<bitfield5>
<bitf_name>aaa_04</bitf_name>
</bitfield5>
<bitfield6>
<bitf_name>aaa_04</bitf_name>
</bitfield6>
<bitfield7>
<bitf_name>aaa_05</bitf_name>
</bitfield7>
</testbus>
<testbus>
<index>01</index>
<tb_name>buffermngr01</tb_name>
<bitfield0>
<bitf_name>bbb_00</bitf_name>
</bitfield0>
<bitfield1>
<bitf_name>bbb_00</bitf_name>
</bitfield1>
<bitfield2>
<bitf_name>bbb_00</bitf_name>
</bitfield2>
<bitfield3>
<bitf_name>bbb_00</bitf_name>
</bitfield3>
<bitfield4>
<bitf_name>bbb_01</bitf_name>
</bitfield4>
<bitfield5>
<bitf_name>bbb_01</bitf_name>
</bitfield5>
<bitfield6>
<bitf_name>bbb_02</bitf_name>
</bitfield6>
<bitfield7>
<bitf_name>bbb_03</bitf_name>
</bitfield7>
</testbus>
</testbuses>
无论如何,这个 XML 的结构并不严格,所以如果您有更好的结构以方便阅读的建议,我会很高兴听到您的解决方案。
【问题讨论】:
-
您是否尝试阅读有关如何使用它的文档?谷歌一下,你会发现一些东西。
-
是的,我已经尝试过了,但也许您可以告诉我 JAXB 是否是正确的选择,以及 XML 的结构是否适合我的需要。谢谢
-
参考这个链接:stackoverflow.com/questions/5059224/…。 JPA 实体默认使用 JAXB 注释来序列化对象。我从未使用它直接读取 XML 数据,但它应该可以这样做。上面的链接是关于您可以使用哪个 Java XML 库的讨论。希望它会有所帮助。
标签: java xml xml-parsing jaxb