新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论DOM, SAX, XPath等。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DOM/SAX/XPath 』 → [求助]JDOM解析XML的问题? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5528 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [求助]JDOM解析XML的问题? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     rickhunter 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:20
      积分:129
      门派:XML.ORG.CN
      注册:2005/7/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给rickhunter发送一个短消息 把rickhunter加入好友 查看rickhunter的个人资料 搜索rickhunter在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看rickhunter的博客楼主
    发贴心情 [求助]JDOM解析XML的问题?

    xml如下:
    <Recon>
    <ProvCode>731</ProvCode>
    <date>20061221</date>
    <Stat>
     <FileCount>3</FileCount>
     <FileList>
      <FileName>stat1.file</FileName>
      <FileName>stat2.file</FileName>
      <FileName>stat3.file</FileName>
     </FileList>
    </Stat>
    <Monitor>
     <FileCount>4</FileCount>
     <FileList>
      <FileName>Monitor1.file</FileName>
      <FileName>Monitor2.file</FileName>
      <FileName>Monitor3.file</FileName>
      <FileName>Monitor4.file</FileName>
     </FileList>
    </Monitor>
    </Recon>

    解析类为:
    package com;

    import org.jdom.input.SAXBuilder;
    import org.jdom.*;
    import java.util.*;
    import java.io.IOException;

    public class Test1 {

     /**
      * @param args
      */
     public static void main(String[] args) {
      // TODO 自动生成方法存根
      SAXBuilder sb=new SAXBuilder(false);
      Document doc = null;
      try {
       doc = sb.build("test.xml");
      } catch (JDOMException e) {
          e.printStackTrace();
      } catch (IOException e) {
          e.printStackTrace();
      }
             Element root=doc.getRootElement(); //获取根元素
             
             Element ProvCodeElement=root.getChild("ProvCode");
             String ProvCode=ProvCodeElement.getText();
             System.out.println("ProvCode:"+ProvCode);
             Element dateElement=root.getChild("date");
             String date=dateElement.getText();
             System.out.println("date:"+date);
             List list=root.getChildren("Stat");
             for(int i=0;i<list.size();i++){
                  Element element=(Element)list.get(i);
             
                  String FileCount=element.getChildText("FileCount");
                  System.out.println("FileCount:"+FileCount);
                 
                  List list1=element.getChildren("FileList");
                  System.out.println("FileListSize:"+list1.size());
                  for(int j=0;j<list1.size();j++){
                   Element element1=(Element)list1.get(j);
                  
                   String FileName=element1.getChildText("FileName");
                      System.out.println("FileName:"+FileName);
                  }
                  
             }
             
             List list2=root.getChildren("Monitor");
             for(int i=0;i<list.size();i++){
                  Element element2=(Element)list2.get(i);
             
                  String FileCount=element2.getChildText("FileCount");
                  System.out.println("FileCount:"+FileCount);
                 
                  List list3=element2.getChildren("FileList");
                 
                  for(int j=0;j<list2.size();j++){
                   Element element1=(Element)list3.get(j);
                  
                   String FileName=element1.getChildText("FileName");
                      System.out.println("FileName:"+FileName);
                  }
                  
             }
             
      }

    }


    为什么解析结果为:
    ProvCode:731
    date:20061221
    FileCount:3
    FileListSize:1
    FileName:stat1.file
    FileCount:4
    FileName:Monitor1.file


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/20 16:38:00
     
     allrr 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:6
      积分:102
      门派:XML.ORG.CN
      注册:2007/1/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给allrr发送一个短消息 把allrr加入好友 查看allrr的个人资料 搜索allrr在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看allrr的博客2
    发贴心情 
    List list1=element.getChildren("FileList");
    for(int j=0;j<list1.size();j++){
                   Element element1=(Element)list1.get(j);
                   
                   String FileName=element1.getChildText("FileName");
                      System.out.println("FileName:"+FileName);
                  }
    这个循环中,list1.size是1,所以打印的是一行
    照你的做法,应该再往下得到filename节点
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/1/11 14:23:00
     
     allrr 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:6
      积分:102
      门派:XML.ORG.CN
      注册:2007/1/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给allrr发送一个短消息 把allrr加入好友 查看allrr的个人资料 搜索allrr在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看allrr的博客3
    发贴心情 
    简单点的做法是:
    public static void ReadNode(Element el)
    {
     List list = el.getChildren();
     if(list.size()!=0)//still has child element
     {
      System.out.println(el.getName());
      for(int i=0;i<list.size();i++)
       ReadNode((Element)list.get(i));
     }
     else
      System.out.println(el.getName()+":"+el.getText());
    }

    在main()中直接调用 ReadNode(root);

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/1/11 15:00:00
     
     kukumaluw 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:13
      积分:107
      门派:XML.ORG.CN
      注册:2007/7/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给kukumaluw发送一个短消息 把kukumaluw加入好友 查看kukumaluw的个人资料 搜索kukumaluw在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看kukumaluw的博客4
    发贴心情 
    明白

    ----------------------------------------------
    动荡的是路途,是时间,不是我的心。踏过布满荆棘的木板,流着血找到彼岸。左手盛装着烟火和寂寞,右手翻涌着回忆和过错。忘记要对佛祖说些什么,有只云雀轻轻轻轻掠过……

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/7/11 11:01:00
     
     kukumaluw 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:13
      积分:107
      门派:XML.ORG.CN
      注册:2007/7/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给kukumaluw发送一个短消息 把kukumaluw加入好友 查看kukumaluw的个人资料 搜索kukumaluw在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看kukumaluw的博客5
    发贴心情 
    明白!

    ----------------------------------------------
    动荡的是路途,是时间,不是我的心。踏过布满荆棘的木板,流着血找到彼岸。左手盛装着烟火和寂寞,右手翻涌着回忆和过错。忘记要对佛祖说些什么,有只云雀轻轻轻轻掠过……

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/7/11 11:02:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DOM/SAX/XPath 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/3 18:45:12

    本主题贴数5,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    109.375ms