<?xml version="1.0" encoding="UTF-8"?>
<root>
   <city code="01">
       <school>
           <id>00001</id>
           <name>学校01</name>
       </school>
       <school>
           <id>00002</id>
           <name>学校02</name>
       </school>
   </city>
   <city code="02">
       <school>
           <id>00001</id>
           <name>学校03</name>
       </school>
       <school>
           <id>00002</id>
           <name>学校04</name>
       </school>
   </city>
</root>
问题:想这样结构的XML文件,我用dom4j解析的,我要通过code值(红字的),确定要遍历的节点<city>,有什么方法吗?我现在能实现的是将city节点遍历两次,取出所有数据。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【TerrySJJ】截止到2008-07-18 15:57:22的历史汇总数据(不包括此帖):
    发帖的总数量:45                       发帖的总分数:1864                     每贴平均分数:41                       
    回帖的总数量:144                      得分贴总数量:41                       回帖的得分率:28%                      
    结贴的总数量:45                       结贴的总分数:1864                     
    无满意结贴数:7                        无满意结贴分:410                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:15.56 %               无满意结分率:22.00 %                  
    敬礼!
      

  2.   

    你只能取在遍历city的时候,比较属性code是否是你要的,是你就处理,不是你就不处理,只有这样。
      

  3.   

    或者你就使用xpath来解析,这样子就不用那么麻烦。
      

  4.   


    SAXReader saxReader = new SAXReader(); try {
    Document document = saxReader.read(new File("e://xml//city.xml"));
    List list = document.selectNodes("//city");
    for (int i = 0; i < list.size(); i++) {
    Element element = (Element) list.get(i);
    Attribute attribute = element.attribute("code");
    String code = attribute.getText(); //属性code的值
    System.out.println(code);
                         
    }
    } catch (DocumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }不知道对你有没有帮助,呵呵.
      

  5.   

    在for里面得到code值之后,再针对你的需求再进行判断了得值等操作.