使用dom4j解析XML String

时间:2017-09-28 11:37:38

标签: xml dom4j

这是 xml 字符串。我想在列表中找到 项目可以是1或更多。我想获得像Id这样的项目价值,支付...... 但我无法达到这些项目。如何使用dom4j访问此值?

<?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>01234567</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>01234567</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>

我真的很感谢你的帮助!

2 个答案:

答案 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 for循环,提取&amp;在。

答案 1 :(得分:0)

我在同样的问题上苦苦挣扎,并在DOM4J Documentation中找到了解决方案。

  

如果您有一些XML作为字符串,则可以使用来再次将其解析回文档中   助手方法DocumentHelper.parseText()

     

字符串text =“ James”;

     

文档document = DocumentHelper.parseText(text);