0

重複の可能性:
Java アプリケーションで XML ファイルを読み取るための最良/最も簡単な方法は何ですか?

私はこのような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クラスを生成する方法はありますか?

4

3 に答える 3

3

XSDまたはDTDをお持ちの場合は、 JaxBを使用してドキュメントの表現を簡単に作成できます。

スキーマ定義がない場合は、作成することをお勧めします。とにかくすぐに役に立ちます。ドキュメントを検証したり、フォーマットを誰かと共有しようとしたりするとすぐに。

ところで、これは複雑な XML ドキュメントではありません ;)

于 2012-06-27T06:58:05.373 に答える
1

スキーマの必要性について@Tomに完全に同意しますが、時にはそれはやり過ぎです。XStream のような高速でシンプルな OXM フレームワークを使用できます。http://x-stream.github.io/を参照してください

于 2012-06-27T07:05:34.123 に答える
0

XSD (または他のスキーマ) は、直接の子に対する制約のみを提供することに注意してください。そのため、Item のネストが 2 レベルしかないのか、それとも無限なのかは明確ではありません。前者の場合、手動でコードを作成する必要があります - スキーマはそれを行いません。

ドキュメントのコーパスからスキーマを推測するのは非常に難しい作業です。

また、Item のネストされた使用は、Item の複数のプロパティを示す有用な方法ではない可能性が高いこともコメントします。

于 2012-06-27T07:38:54.407 に答える