XML内容如下,我要修改<lastid>节点中的值
<?xml version="1.0" encoding="UTF-8"?>
<config>
  <db1>
   <url>jdbc:mysql://localhost:3306/testdb1</url>
   <user>root</user>
   <passwd>123456</passwd>
   </db1>
    <db2>
   <url>jdbc:mysql://localhost:3306/testdb2</url>
   <user>root</user>
   <passwd>123456</passwd>
   </db2>
   <lastid>0</lastid>
</config>
于是我自己定义了个config类,里面添加了修改这个值的方法如下:
package com;
import java.io.*;
import java.util.Iterator;
import java.util.List;import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.xml.*;public class Config {
private String xml;

public Config(){

}

public Config(String filename){
xml=filename;
}

public void setConfig(String rootname,String last) throws ClassNotFoundException{
try{
File f= new File(xml);
if(!f.exists()){
System.out.println("Error:配置文件不存在!");
System.exit(1);
}
SAXReader reader=new SAXReader();
Document doc;
doc = reader.read(f);
List<Element> lst=doc.selectNodes(rootname);;
Iterator<Element> itr=lst.iterator();
if(itr.hasNext()){
Element lastid=itr.next();
lastid.setText(last);
}
}catch (Exception ex){
System.out.println("Error:"+ex.toString());
}
}

}
调用如下:
int last=0;
Config cfg=new Config("test.xml");
cfg.setConfig("lastid", Integer.toString(last));但老是报错如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext
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)
at com.Config.setConfig(Config.java:54)
at com.CopyTest.main(CopyTest.java:45)
Caused by: java.lang.ClassNotFoundException: org.jaxen.NamespaceContext
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more
求破啊,困扰两天了~~~~