在xml文件中,如何根据同一节点级别中的另一个标签获取标签中的数据?

时间:2014-09-10 15:10:24

标签: java xml

我有一个xml文件,如下所示:

<root>
<doc>
  <str name="name">test1</str>
  <str name="uri">test1.com</str>
</doc>
<doc>
  <str name="name">test2</str>
  <str name="uri">test1.com</str>
</doc>
 </root>

我想解析文件。我可以使用dom4j获取名称。

for(Element doc : docs ){
          List<Element> strs = doc.elements();
          for(Element str : strs ){
              if("name".equals(str.attributeValue("name"))){
                 System.out.println(str.getText());  
                    }
                }
            }

如何获取&#39; uri&#39;的数据?我在同一节点&#39; doc&#39;

之后获取&#39; name&#39;的数据后? 非常多!

2 个答案:

答案 0 :(得分:0)

以下是不够的:

for(Element doc : docs ){
   List<Element> strs = doc.elements();
   for(Element str : strs ){
      if("name".equals(str.attributeValue("name"))){
         System.out.println(str.getText());  
      }
      if("uri".equals(str.attributeValue("name"))){
         System.out.println(str.getText());  
      }
   }
}

当你在“doc”的孩子身边循环时

答案 1 :(得分:0)

        for(Element doc : docs ){
                  List<Element> strs = doc.elements();
                  for(Element str : strs ){
                     String name="";
                     String  uri=""
                     if("name".equals(str.attributeValue("name"))){
                         name=str.getText();  
                     }
                     if("uri".equals(str.attributeValue("name"))){
                         uri=str.getText();  
                     }
                  }
                  System.out.println("name:"+name+" uri:"+uri); 
        }