2017-02-03 9 views
4

質問の目的は、this SO questionと同じですが、JAXBを使用せずに達成しようとしています。しかし、JAXBが使用するリフレクションを使用しています。リフレクション(JAXBではなく)を使用してXMLを既存のJava Beanに変換する

私は定義済みのBeanを持っているのでJAXBを使用しないようにしています。XMLが与えられたら、Beanを満たす適切なクラスと設定を取得する必要があります。

XMLは単なるデータソースです。このBeanに必要なデータをすべて取得する必要があります。

あまり複雑ではないXMLのために試してみました。しかし、以下のような複雑なものでは失敗します。上記XML配列要素

<Response> <Result> <Result_Flag>2</Result_Flag> <Result_Code>1000</Result_Code> <Result_Message>Failure</Result_Message> <Result_Description>Just for fun2</Result_Description> </Result> <Remits> <OR> <I_Number>40002829</I_Number> <OrderNumber>agdfsg</OrderNumber> <Agents> <number>y</number> <Agent> <name>a</name> <id>1</id> <phone> <number>9424648525</number> <network>AIRTEL1</network> </phone> <phone> <number>9424648525</number> <network>AIRTEL1</network> </phone> </Agent> <Agent> ....similar data... </Agent> </Agents> </OR> <OR> <I_Number>40004213</I_Number> <OrderNumber>fgrtey</OrderNumber> <Agents> <number>z</number> <Agent> <name>c</name> <id>2</id> <phone> <number>9424645555</number> <network>AIRCEL1</network> </phone> <phone> <number>9424645555</number> <network>AIRCEL2</network> </phone> <I_Number>40002829</I_Number> </Agent> <Agent> ....similar data... </Agent> </Agents> </OR> </Remits> </Response> 

public class SampleBean { 
    private String responseCode; 
    private String responseMessage; 
    private ArrayList<OR> records; 
    private String txnId; 
} 

public class OR{ 
    private String txnId; 
    private String orderNumber; 
    private String numberOfAgents; 
    private ArrayList<Agent> otherAgents; 
} 

public class Agent { 
    private String agentName; 
    private String agentId; 
    private ArrayList<Phone> agentPhoneDetails; 
} 

public class Phone { 
    private String agentPhoneNumber; 
    private String agentPhoneNetwork; 
} 

...

はここでそれぞれの豆であるか、エージェント、電話している私は、リフレクションを使用してみましたし、実装することができませんでした。誰かがこれを試してみたと思っています...あなたがそのような実装を知っていれば助けてください。

注:JAXB

答えて

0

を使用していない私はあなたがXStreamのを使用することができると思う、これは、Javaクラスと他の方法にXMLデータを変換するためのライブラリです。使用するのが非常に簡単です。

http://x-stream.github.io/tutorial.htmlここではチュートリアルです。

私はもっと複雑な構造に使用しており、うまく動作します。

+0

お返事ありがとうございます。しかし、私は変換だけを探しているわけではありません。私は既存のbeanを持っており、XMLデータを適切なフィールドに埋めたいと思っています。 – Vamsidhar

関連する問題