0

Possible Duplicate:
What is the best/simplest way to read in an XML file in Java application?

I have an xml like this:

<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>

I feel that this is a pretty complex xml structure since it has a nested tag. is there a way around to generate java class for the structure?

4

3 回答 3

3

如果您有 XSD 或 DTD,则可以使用JAXB轻松创建文档的表示。

如果您没有架构定义,我建议您编写它。不管怎样,它很快就会派上用场。一旦您尝试验证文档或与任何人共享您的格式。

顺便说一句,这不是一个复杂的 XML 文档;)

于 2012-06-27T06:58:05.373 回答
1

虽然我完全同意@Tom 关于模式的必要性,但有时这是一种矫枉过正的做法。您可以使用快速简单的 OXM 框架,例如 XStream。见http://x-stream.github.io/

于 2012-06-27T07:05:34.123 回答
0

请注意,XSD(或其他模式)仅提供对直接子级的约束。所以不清楚您是否只有两个级别的 Item 或无限嵌套。如果是前者,您将不得不手动编写代码 - 模式不会为您完成。

从文档语料库中推断模式是一项非常艰巨的任务。

我还要评论说,Item 的嵌套使用不太可能是指示 Item 的多个属性的有用方法。

于 2012-06-27T07:38:54.407 回答