2017-05-07 12 views
0

私は、各フィールドの1つを持つXMLファイルを解析する方法を知っています。 DOMパーサーを使用してサブ要素を取得し、それらをNodelistに入れて、名前、ID、年齢を設定します。Javaで繰り返しフィールドを持つXMLファイルを処理する方法

しかし、繰り返しフィールドを持つXMLファイルのデータを解析して保存する方法はわかりません。たとえば、各施設には複数のアイテムがあり、各リンクまでの距離に複数の「リンク」があります。たとえばシアトルではこのXMLファイルのFargoへのリンクがあり、距離は1426です。

アイテムやリンクの解析にはどうすればいいですか?私は複数の項目を持っているので、部分文字列項目と単純に一致することはできません。Nodelistを使用するのが適切かどうかわからないので、どの種類のデータ構造を使用するかわかりません。

私はJavaでのXML解析をGoogleで行いましたが、私はまだ混乱しています。この情報をすべて格納するために使用するデータ構造の種類はわかりません。

<Facility> 
    <Name>Seattle, WA</Name> 
    <ProcessingRate>8</ProcessingRate> 
    <ProcessingCost>300</ProcessingCost> 
    <Link> 
     <Name>Fargo, ND</Name> 
     <Distance>1426</Distance> 
    </Link> 
    <Link> 
     <Name>San Francisco, CA</Name> 
     <Distance>808</Distance> 
    </Link> 
    <Item> 
     <Id>ABC123</Id> 
     <Quantity>45</Quantity> 
    </Item> 
    <Item> 
     <Id>JBL3100</Id> 
     <Quantity>52</Quantity> 
    </Item> 
    <Item> 
     <Id>PL132-C</Id> 
     <Quantity>54</Quantity> 
    </Item> 
    <Item> 
     <Id>PU238</Id> 
     <Quantity>60</Quantity> 
    </Item> 
</Facility> 

<Facility> 
+0

可能な重複します(http:// stackoverflow.com/questions/13987708/convert-xml-file-into-an-xml-object-having-a-list) – tima

答えて

0

あなたは、このようなクラスのオブジェクトに、このxmlファイルを読むことができます:[リストを持つXMLオブジェクトへのXMLファイルの変換]の

class Facility { 
    String Name; 
    String ProcessingRate; 
    String ProcessingCost; 
    List<ChildObject> links; 
    List<ChildObject> items; 
} 

class ChildObject { 
    String name; 
    String value; 
    String type; 
} 
+0

どのように私はそれを解析するだろうか?例えば私が与えた人の例では、名前の配列リスト、次にgetElementByTagName( "ID")、getElementByTagName( "Age")などを使って解析します。 –

+0

あなたはそれを自分で行うことができます。 xmlを読み込んで、このオブジェクトの同等のフィールドに値を入れてください。 xmlの詳細については、[この記事](https://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/)を参照してください。次に、上記のオブジェクトクラスにマッピングするだけです –

関連する問題