2017-10-22 15 views
0
<message> 
    <element1> 
     <arrival point="string"> 
      <positionAndTime> 
       <Time> 
        <estimated time="2017-10-14T10:43:00Z"/> 
       </Time> 
      </positionAndTime> 
     </arrival> 
    </element1> 
    <element2> 
     <depart point="string"> 
      <positionAndTime> 
       <Time> 
        <estimated time="2017-10-14T10:43:00Z"/> 
       </Time> 
      </positionAndTime> 
     </depart> 
    </element2> 
</message> 

これはXMLドキュメントの簡略化されたバージョンです。 私はJavaEEアプリケーションを作成していますが、XMLの解析に混乱します。これまでのところ、私はそれを反復し、到着ポイント=文字列と出発点=文字列から文字列を受け取ることができましたが、要素1と2から "推定時間"ブロックを取得する方法を理解しています。 getElementsByTagNameという名前ですが、要素1と2で同じ名前が付けられているため、それらを別々にする必要があります。DOMを使用してJavaで複雑な要素XMLを解析する

+0

あなたはJAXBを試してみましたとして

は今、あなたはデータ(arrivalEstimatedTime、departureEstimatedTime)を持っている、あなたは値を送信します。 XMLをマップするクラスを作成し、オブジェクトのようなプロパティにアクセスするだけです。 https://www.javatpoint.com/jaxb-tutorial – LogicDev

+0

あなたが提供したリンクを見れば、これはDOMよりも組織化されたアプローチかもしれないと思います。しかし、私の問題はまだ残っています。 2つのタイムスタンプは同じ名前が付けられていますが、到着時および出発時には異なる方法で編成されます。ドキュメントによると、どのコードがどのコードであるかを知る方法は見つけられません。到着タイムスタンプは出発時刻スタンプと同様にSQLデータベースにも送られます。 JAXやDOMを使って解析するときに、どのように伝えるか? – captCC

答えて

0

シンプル!

あなたは、異なる名前を付けるPojoクラスを使い分けています。

class MessageParser{ 

private String arrivalEstimatedTime; 
private String departureEstimatedTime; 
.. 
//getters and setters 
public String getArrivalEstimatedTime() { 
    return arrivalEstimatedTime; 
} 

public void setArrivalEstimatedTime(String arrivalEstimatedTime) { 
    this.arrivalEstimatedTime = arrivalEstimatedTime; 
} 

public String getDepartureEstimatedTime() { 
    return departureEstimatedTime; 
} 

public void setDepartureEstimatedTime(String departureEstimatedTime) { 
    this.departureEstimatedTime = departureEstimatedTime; 
} 
} 

あなたが<arrival point="string">タグ内にあるときに、あなたのアール(到着タグまたは出発タグ内)

だから

MessagePojo message=new MessagePojo(); 

message.SetArrivalEstimatedTime(arrival_Time_From_XML); 

と同じ以下のように値を設定し、あなたが知っているXMLをトラバース出国予定時刻になります。必要な

関連する問題