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

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

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 4977 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: dom4j的问题求教 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     lf11004 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:0
      积分:52
      门派:XML.ORG.CN
      注册:2006/9/5

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

    我写了一个DOM解析XML的类文件,源代码如下:
    package com.liufang.dom4j;

    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.Attribute;
    import java.util.List;
    import java.util.Iterator;
    import org.dom4j.io.XMLWriter;
    import java.io.*;
    import org.dom4j.DocumentException;
    import org.dom4j.io.SAXReader;

    public class Dom4JParser{

    public void modifyDocument(File inputXml){

      try{
       SAXReader saxReader = new SAXReader();
       Document document = saxReader.read(inputXml);

       List list = document.selectNodes("//article/@level");
       Iterator iter=list.iterator();
       while(iter.hasNext()){
        Attribute attribute=(Attribute)iter.next();
        if(attribute.getValue().equals("Intermediate"))
          attribute.setValue("Introductory");

           }
       
       list = document.selectNodes("//article/@date");
       iter=list.iterator();
       while(iter.hasNext()){
        Attribute attribute=(Attribute)iter.next();
        if(attribute.getValue().equals("December-2001"))
          attribute.setValue("October-2002");

           }

       list = document.selectNodes("//article" );
       iter=list.iterator();
       while(iter.hasNext()){
        Element element=(Element)iter.next();
        Iterator iterator=element.elementIterator("title");
          while(iterator.hasNext()){
            Element titleElement=(Element)iterator.next();
            if(titleElement.getText().equals("Java configuration with XML Schema"))
            titleElement.setText("Create flexible and extensible XML schema");

                                              }

                                    }

        list = document.selectNodes("//article/author" );
        iter=list.iterator();
         while(iter.hasNext()){
         Element element=(Element)iter.next();
         Iterator iterator=element.elementIterator("firstname");
         while(iterator.hasNext()){
          Element firstNameElement=(Element)iterator.next();
          if(firstNameElement.getText().equals("Marcello"))
          firstNameElement.setText("Ayesha");
                                         }

                                  }

        list = document.selectNodes("//article/author" );
        iter=list.iterator();
         while(iter.hasNext()){
          Element element=(Element)iter.next();
          Iterator iterator=element.elementIterator("lastname");
         while(iterator.hasNext()){
          Element lastNameElement=(Element)iterator.next();
          if(lastNameElement.getText().equals("Vitaletti"))
          lastNameElement.setText("Malik");

                                      }

                                   }
         XMLWriter output = new XMLWriter(
          new FileWriter( new File("d:/catalog-modified.xml") ));
         output.write( document );
         output.close();
       }

      catch(DocumentException e)
                     {
                      System.out.println(e.getMessage());
                                }

      catch(IOException e){
                           System.out.println(e.getMessage());
                        }
    }

    public static void main(String[] argv){

      Dom4JParser dom4jParser=new Dom4JParser();
      dom4jParser.modifyDocument(new File("d:/catalog.xml"));

                                            }

       }
    但是总是出错: List list = document.selectNodes("//article/@level");有错误
    还有就是at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
     at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207)
     at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164)
    出错。因此就没有办法解析d:/catalog.xml文件。
    哪位高手可以帮忙解决啊!十分着急!
    万分感谢!


       收藏   分享  
    顶(0)
      




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

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

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