免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2247 | 回复: 0
打印 上一主题 下一主题

dom4j遍历xml出错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-15 14:44 |只看该作者 |倒序浏览
本帖最后由 jiangeb 于 2011-04-15 14:46 编辑

我用dom4j 遍历xml文件。这个xml文件里包含了5条记录,每条记录的结构一样。遍历的时候程序循环了5遍,得到了5条记录。但是所有记录的结果是一样的,都是第一条的内容。下面是xml文件代码

  1. <ListRecords>
  2. <record>
  3.   <metadata>
  4.    <oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  5.   <dc:title>
  6.   王安石的經世思想 /--夏長樸撰.
  7.   </dc:title>
  8.   <dc:creator>
  9.   夏長樸.
  10.   </dc:creator>
  11.   </metadata>
  12. </record>
复制代码
每条记录在一个<record></record>中。在<record>上还有一层是<listrecords>

  1. public int ReadListIdentifyXML(String filename)
  2. {
  3.     int returnValue =0;
  4.     String nodename = "";
  5.     String nodetext = "";
  6.     String nodepath = "";
  7.     int count = 0;
  8.     try
  9.     {                  
  10.          SAXReader saxReader = new SAXReader();
  11.          Document document = saxReader.read((new File(filename)));
  12.          Element root = document.getRootElement();
  13.          Element iden = root.element("ListRecords");
  14.          for(Iterator i = iden.elementIterator(); i.hasNext();)
  15.          {                
  16.                Element element1 =(Element) i.next();
  17.                nodename = element1.getName();
  18.                nodetext = element1.getText();
  19.                nodepath = element1.getPath();
  20.                if(nodename.equals("record"))
  21.               {
  22.                    Element record = iden.element("record");
  23.                   for(Iterator p = record.elementIterator(); p.hasNext();)
  24.                  {
  25.                          Element element2 =(Element) p.next();
  26.                            nodename = element2.getName();
  27.                         nodetext = element2.getText();
  28.                         nodepath = element2.getPath();                      
  29.                         if(nodename.equals("metadata"))
  30.                        {
  31.                              Element metadata = record.element("metadata");
  32.                        for(Iterator q = metadata.elementIterator(); q.hasNext();)
  33.                       {
  34.                           Element element3 =(Element) q.next();
  35.                           nodename = element3.getName();
  36.                                  nodetext = element3.getText();
  37.                                nodepath = element3.getPath();                  
  38.                               if(nodename.equals("dc"))
  39.                               {
  40.                                 Element dc = metadata.element("dc");
  41.                               for(Iterator m = dc.elementIterator(); m.hasNext();)
  42.                              {
  43.                                      Element element4 =(Element) m.next();
  44.                                      nodename = element4.getName();
  45.                                nodetext = element4.getText();
  46.                              nodepath = element4.getPath();
  47.                                System.out.println("4 layer-name=" + nodename);
  48.                              System.out.println("4 layer-value=" + nodetext);
  49.                              System.out.println("4 layer-path=" + nodepath);
  50.                              System.out.println("#################################");
  51.                        }                       
  52.                          }                           
  53.                    }
  54.                      }
  55.                }  
  56.                }
  57.                  nodename = "";
  58.                  nodetext = "";
  59.                  nodepath = "";
  60.           }
复制代码
不知道是哪里出错了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP