2016-08-12 62 views
-2

我有一個看起來像這樣(片段)的XML。Java的xml到對象類

<struct> 
    <member> 
     <name>last_name</name> 
     <value> 
      <string></string> 
     </value> 
    </member> 
    <member> 
     <name>payment_method</name> 
     <value> 
      <int>1</int> 
     </value> 
    </member> 
</struct> 

如何將它轉換爲java類?它有超過100個元素和40多個這樣的轉換,所以手動解析它是沒有問題的:)

問題是解析器無法識別包含在名稱和值標記中的值,或者我不知道如何使用它。所有在線例子都假設你有類似<age>78</age>而不是<name>age<name/> <value>78</value>

+0

使用Java中內置的* many * XML解析器之一:DOM,SAX,StAX,JAXB。或者使用其中一個更廣泛的第三方XML解析器庫(如果您想查找它們,請搜索網頁)。 – Andreas

+0

可能重複[如何解析xml到java對象?](http://stackoverflow.com/questions/16364547/how-to-parse-xml-to-java-object) –

+0

是的,我知道解析器,問題在於他們不能填充類,因爲字段的名稱和值都被包含在名稱和值標記中。問題是要讓解析器(最好是jax)理解奇怪的scema。我搜查了網絡的C但我找不到任何例子。 –

回答

0

使用maven-jaxb2-plugin。它生成unsexy代碼來解析XML模式(XSD文件)中的XML。如果您沒有XSD,您可以從樣本數據this online generator生成它。 因此,生成XSD後,將插件添加到您的POM並進行配置(其中是XSD以及要生成代碼的包),您將可以運行mvn generate-sources。 它將生成一組類,主要集中在能夠解析所有XML的單個Java文件中。它生成POJO的運行時結構,表示可以遍歷的XML節點,以提取任何必要的信息。

0

看起來更容易創建一個接受所有值的類並從頭開始創建一個可以使用jax或其他解析器輕鬆解析的新XML文檔。