import org.dom4j.*;
import java.io.*;
import org.dom4j.io.*;public class CreateXML { public static void main(String[] args) {
//创建空文档
Document document = DocumentHelper.createDocument(); //添加根元素
Element eleCakes = DocumentHelper.createElement("cakes");
document.setRootElement(eleCakes);
        
        //添加子元素
Element eleCake1 = eleCakes.addElement("cake");
        Element eleName1 = eleCake1.addElement("name");
        Element elePrice1 = eleCake1.addElement("price");
        
        //添加元素内容
        eleName1.addText( "巧克力蛋糕" );
        elePrice1.addText("45.0");
        
        //添加属性
        eleCake1.addAttribute("code", "B01");
        
        //添加子元素
        Element eleCake2 = eleCakes.addElement("cake");
        Element eleName2 = eleCake2.addElement("name");
        Element elePrice2 = eleCake2.addElement("price");
        
        //添加元素内容
        eleName2.addText("冰淇淋蛋糕");
        elePrice2.addText("50.0");
        
        //添加属性
        eleCake2.addAttribute("code", "B02");
        
        /*保存文档*/
        OutputFormat format = OutputFormat.createPrettyPrint();//设置美化格式
format.setEncoding("GB2312");//设置字符编码为GB2312
try {
FileWriter out = new FileWriter("cakedemo.xml");
XMLWriter writer = new XMLWriter(out, format);
writer.write(document);//输出XML文档
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}}通过以上创建一个一这样的XML文档。。
  <?xml version="1.0" encoding="GB2312" ?> 
<cakes>
<cake code="B01">
  <name>巧克力蛋糕</name> 
  <price>45.0</price> 
  </cake>
<cake code="B02">
  <name>冰淇淋蛋糕</name> 
  <price>50.0</price> 
  </cake>
  </cakes>现在想把这个文档输出来。。
我写了下面这个JAVA文件。。import java.util.List;
import org.dom4j.*;
import org.dom4j.io.*;public class VisitXML { public static void main(String[] args) {
SAXReader saxReader = new SAXReader();
try {
//解析cakedemo.xml文档
Document document = saxReader.read("cakedemo.xml");

//获取根元素
Element eleRoot = document.getRootElement();

//获取所有cake子元素
List listCake = eleRoot.selectNodes("cake");
for (int i = 0; i < listCake.size(); i++) {
//强制转换为Element类型
Element eleCake = (Element)listCake.get(i);

//输出属性code的值
System.out.print(eleCake.attributeValue("code"));

//输出元素name的内容
Element eleName = eleCake.element("name");
System.out.print("\t" + eleName.getText());

//输出元素price的内容
Element elePrice = eleCake.element("price");
System.out.println("\t" + elePrice.getText());
}
} catch (DocumentException e) {
e.printStackTrace();
}
}}但是运行总是报错,报错信息如下
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException
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 book.VisitXML.main(VisitXML.java:19)
Caused by: java.lang.ClassNotFoundException: org.jaxen.JaxenException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 4 more
这是哪门的错误。。晕了我好长时间
背后错误在这个地方List listCake = eleRoot.selectNodes("cake");
for (int i = 0; i < listCake.size(); i++) 
我一用这个,运行就报错,但是编译的时候没有出现任何问题有没人能说明一下原因,帮我解决一下这个问题,谢谢