java 中 对SAX的操作

java 代码:

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class TestXML03 {
public static void main(String[] args) throws DocumentException {
SAXReader r=new SAXReader();
Document d=r.read(TestXML03.class.getClassLoader().getResource("xml/test.xml"));
Element root=d.getRootElement();

    [color=red]List<Element> eles=root.selectNodes("book");[/color]     

}

}

XML:

<?xml version="1.0" encoding="UTF-8"?>


java编程思想
日本AV女郎
312


C++编程思想
韩国AV女郎
312


PHP编程思想
越南AV女郎
312

异常:

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 FirstOne.TestXML03.main(TestXML03.java:15)
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

红色那段报错很诡异 实在没有办法啦

由于dom4j在使用selectNodes方法是依赖jaxen的,所以需要导入这个jar,下载地址为:
[url]http://dist.codehaus.org/jaxen/distributions/jaxen-1.1.1.zip[/url]

在项目中导入jaxen.jar就好了,dom4j依赖于这个jar包