2017-09-28 2 views
0

これはxml文字列です。私はアイテムをリスト内に入れようとしています アイテムは1つ以上にすることができます。私はIdのようなアイテムの値を取得したい、支払う... しかし、私は項目に到達することはできません。どのようにしてdom4jでこの値にアクセスできますか?dom4jでXMLストリングを解析する

<?xml version="1.0" encoding="UTF-8"?> 
<data> 
<cm>Detail</cm> 
<Code>1</Code> 
<No>20170928</No> 
<Num>1</Num> 
<Flag>Y</end_Flag> 
<list> 
    <items> 
    <item> 
    <Id></Id> 
    <pay>5555</pay> 
    <remarksInfo></remarksInfo> 
    <d_Date>2017-09-28 16:26:55</d_Date> 
    <amount>1.0</amount> 
    <Name>ADAM</Name> 
    <e_Date>2017-09-28 16:26:55</e_Date> 
    <t_Date>2017-09-28 17:46:39</t_Date> 
    <damount>1.0</damount> 
    <fee>3.0</fee> 
    <e_Name>Smith</e_Name> 
    <abstractInfo></abstractInfo> 
    <Status>S</Status> 
    <Code>0026</Code> 
    <l_Desc></l_Desc> 
    <note></note> 
    </item> 
<item> 
    <Id></Id> 
    <pay>5555</pay> 
    <remarksInfo></remarksInfo> 
    <d_Date>2017-09-28 16:26:55</d_Date> 
    <amount>1.0</amount> 
    <Name>ADAM</Name> 
    <e_Date>2017-09-28 16:26:55</e_Date> 
    <t_Date>2017-09-28 17:46:39</t_Date> 
    <damount>1.0</damount> 
    <fee>3.0</fee> 
    <e_Name>Smith</e_Name> 
    <abstractInfo></abstractInfo> 
    <Status>S</Status> 
    <Code>0026</Code> 
    <l_Desc></l_Desc> 
    <note></note> 
    </item> 
    </items> 
</list> 
<hmac>123</hmac> 
</data> 

本当にありがとうございます。

+0

何を試していますか?どのように失敗しますか? –

答えて

0
SAXReader reader = new SAXReader(); 
     Document document = reader.read(inputFile); 

     Element classElement = document.getRootElement(); 

     List<Node> nodes = document.selectNodes("/data/list/items"); 
     System.out.println("----------------------------"); 

     for (Node node : nodes) { 
     //get ID & Pay under item 
      String id = node.selectSingleNode("Id").getText() 
      String pay = node.selectSingleNode("Pay").getText() 

     } 

forループでは、&を下に抽出します。

+0

xmlはファイルではない文字列 –

+0

read()メソッドには複数のバリエーションがあります。 https://dom4j.github.io/javadoc/2.0.1/org/dom4j/io/SAXReader.html#read-java.io.File- – JRR

+0

をチェックします。具体的には、Readerを受け入れるread()メソッドがあります。そのため、XML文字列をラップするStringReader()を与えることができます。 –