- 2023-01-14 17:02:59
- 9458 热度
- 0 评论
要解析一个XML文件,如下进行解析
public static void main(String[] args) throws Exception { String xmlpath = DomParse.class.getResource("blackhawk.xml").toString(); SAXReader reader = new SAXReader(); Document document = reader.read(xmlpath); List projects = document.selectNodes("/blackhawk/disk/uploadPath"); Iterator it = projects.iterator(); while (it.hasNext()) { Element elm = (Element) it.next(); System.out.println(elm.getText()); } }
使用dom4j时报错
java.lang.NoClassDefFoundError: org/jaxen/JaxenException at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:196) at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:205) at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:161) at xml.Dom4jDemo.readTest(Dom4jDemo.java:223) at xml.Dom4jDemo.main(Dom4jDemo.java:188)
很简单是没有找到类,可是使用dom4j只需一个包,怎么会缺类呢
原来
List projects = document .selectNodes("/blackhawk/disk/uploadPath");
其实这里我使用了XPath进行定位查询节点,而Xpath其实不是dom4j的东西,而是一个标准,使用它需要进入如下两个包
jaxen-full.jar
saxpath.jar
这样才可以使用XPath
可是令我郁闷的是,既然你dom4j是解析xml的,而XPath是如此重要的一个东西,你对它支持的又是如此的好,可你的官方包里为什就是没有加入这两个包呢?
0 评论
留下评论