可能重复:
What is the best/simplest way to read in an XML file in Java application?
我有一个像这样的xml:
<Root>
<Commodity>
<Which name="Book" />
<Book name="harley" price="5" />
<Book name="Marley" price="8" />
<Book name="hampi" price="10" />
</Commodity>
<Item>
<Commodity>
<Which name="fiction" />
<Book name="harley" price="5" />
<Book name="Marley" price="8" />
<Book name="hampi" price="10" />
</Commodity>
<Item>
<Commodity>
<Which name="thriller" />
<Book name="hjhj" price="5" />
<Book name="ccvcv" price="8" />
<Book name="vcvnnn" price="10"/>
</Commodity>
</Item>
</Item>
</Root>
我觉得这是一个非常复杂的xml结构,因为它有一个嵌套标签。有没有办法为结构生成java类?
答案 0 :(得分:3)
如果您有XSD或DTD,则可以使用JAXB轻松创建文档的表示。
如果您没有架构定义,我建议您编写它。无论如何,它很快就会派上用场。只要您尝试验证文档或与任何人共享您的格式。
BTW,这不是一个复杂的XML文档;)
答案 1 :(得分:1)
虽然我完全同意@Tom关于架构的必要性,但有时这是一种过度杀伤力。您可以使用快速简单的OXM框架,如XStream。见http://x-stream.github.io/
答案 2 :(得分:0)
请注意,XSD(或其他模式)仅对直接子项提供约束。因此,不清楚对于Item还是无限只有两个嵌套级别。如果是前者,你将不得不手动编写代码 - 模式不会为你做。
从文档语料库中推导出模式是一项非常艰巨的任务。
我还评论说,嵌套使用Item不太可能是指示Item的多个属性的有用方法。