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++)
我一用这个,运行就报错,但是编译的时候没有出现任何问题有没人能说明一下原因,帮我解决一下这个问题,谢谢
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++)
我一用这个,运行就报错,但是编译的时候没有出现任何问题有没人能说明一下原因,帮我解决一下这个问题,谢谢
解决方案 »
- json 数据解析问题,问得很清楚的,在线等
- 关于Jcap的使用,路过的大神,来看看啊!!!
- 网站瘫痪了,该怎么办?
- jsf组件之间的传参问题
- 请问j2ee的框架是什么?面试题!
- 用jbuilder weblogic 运行第一个ejb 时的错误
- 那位大哥能提供一些基于Struts - 基于MVC设计模式的相应开发案例那???????
- hibernate高手进来看看,我生成得这个hbm.xml文件怎么会出错?
- 100分求助!关于struts的另一个问题!
- 请问我用weblogic建了petstore的domain,但我不知道怎么用,
- java中protect与friendly的区别
- JSP页面乱码解决?汉字显示乱码
http://blog.csdn.net/hbcui1984/archive/2006/09/24/1270163.aspx