使用dom4j保存xml内容失败

youleavemebreathless 2014-05-29 10:52:36
今天学习dom4j想把创建好的xml内容保存到指定book.xml文件中,但是失败了,
运行后book.xml内容为空
package wh.xml;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class XmlPrint extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doPost(request,response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");
//创建Document对象
Document document=DocumentHelper.createDocument();
//创建根节点
Element root=DocumentHelper.createElement("Book-inf0");
document.setRootElement(root);

// 添加图书节点
Element book1=root.addElement("book");
//添加属性
book1.addAttribute("名称", "java开发入门经典");
//添加图书节点的子节点
Element book1_price=book1.addElement("价格");
book1_price.setText("78");
//添加图书节点子节点
Element book1_author=book1.addElement("作者");
book1_author.setText("大神");

// 添加图书节点
Element book2=root.addElement("book");
//添加属性
book2.addAttribute("名称", "javaWEB开发");
//添加图书节点的子节点
Element book2_price=book2.addElement("价格");
book2_price.setText("98");
//添加图书节点子节点
Element book2_author=book2.addElement("作者");
book2_author.setText("奶茶妹");

//设置编码集
OutputFormat format=new OutputFormat();
format.setEncoding("UTF-8");
//输出到浏览器
//OutputStream out=response.getOutputStream();//获取输出流
//XMLWriter writer=new XMLWriter(out,format);
//writer.write(document);
//writer.close();

//输出到指定文件
//String fileURL=request.getContextPath()+"/WebRoot/book.xml";
String fileURL="book.xml";
XMLWriter writer=new XMLWriter(new FileWriter(new File(fileURL)),format);
writer.write(document);
writer.close();
}

}

为什么会空呢?
另外,
我就下载了一个dom4j-1.6.1.jar包,然后放在项目的lib文件夹下,请问还需要什么别的工具么?
...全文
199 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 12 楼 jerryding09 的回复:
[quote=引用 9 楼 yiqitony 的回复:] [quote=引用 8 楼 jerryding09 的回复:] [quote=引用 6 楼 yiqitony 的回复:] 不知道为什么,当我把上面的代码写成一个类而不是servlet类运行就可以, 为什么通过jsp调用这个servelt就没效果呢?
可以打断点调试一下,是不是没有进那个servlet?[/quote] 不可能呀,当我输出到浏览器中时可以正确显示啊,你看我上面的代码,注释掉的那一段。[/quote] book.xml把文件路径打印出来看看,在我的电脑中搜索book.xml文件,看看是不是生成在别的文件夹下面了[/quote] 是的!!尽然在tomcat/bin目录下找到了,这是为什么?
jerryding09 2014-05-30
  • 打赏
  • 举报
回复
引用 9 楼 yiqitony 的回复:
[quote=引用 8 楼 jerryding09 的回复:] [quote=引用 6 楼 yiqitony 的回复:] 不知道为什么,当我把上面的代码写成一个类而不是servlet类运行就可以, 为什么通过jsp调用这个servelt就没效果呢?
可以打断点调试一下,是不是没有进那个servlet?[/quote] 不可能呀,当我输出到浏览器中时可以正确显示啊,你看我上面的代码,注释掉的那一段。[/quote] book.xml把文件路径打印出来看看,在我的电脑中搜索book.xml文件,看看是不是生成在别的文件夹下面了
  • 打赏
  • 举报
回复
引用 10 楼 henry52016 的回复:
是不是没调用flush()?
能指定下在哪里调用flush()吗?如何调用?
miracleliu 2014-05-29
  • 打赏
  • 举报
回复
xml文件贴出来
jerryding09 2014-05-29
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/jerryding09/6708771 这里有个例子,你可以下载下来参考一下
  • 打赏
  • 举报
回复
没有,就输出一句话: This XML file does not appear to have any style information associated with it. The document tree is shown below.
suciver 2014-05-29
  • 打赏
  • 举报
回复
debug看下有什么错误没有
大頭-_- 2014-05-29
  • 打赏
  • 举报
回复
是不是没调用flush()?
  • 打赏
  • 举报
回复
引用 8 楼 jerryding09 的回复:
[quote=引用 6 楼 yiqitony 的回复:] 不知道为什么,当我把上面的代码写成一个类而不是servlet类运行就可以, 为什么通过jsp调用这个servelt就没效果呢?
可以打断点调试一下,是不是没有进那个servlet?[/quote] 不可能呀,当我输出到浏览器中时可以正确显示啊,你看我上面的代码,注释掉的那一段。
jerryding09 2014-05-29
  • 打赏
  • 举报
回复
引用 6 楼 yiqitony 的回复:
不知道为什么,当我把上面的代码写成一个类而不是servlet类运行就可以, 为什么通过jsp调用这个servelt就没效果呢?
可以打断点调试一下,是不是没有进那个servlet?
asdf123qwe_ 2014-05-29
  • 打赏
  • 举报
回复
经测试是没有什么问题的,只改动了一点点:

<?xml version="1.0" encoding="UTF-8"?>
<Book-inf0>
	<book 名称="java开发入门经典">
		<价格>78</价格>
		<作者>大神</作者>
	</book>
	<book 名称="javaWEB开发">
		<价格>98</价格>
		<作者>奶茶妹</作者>
	</book>
</Book-inf0>
java测试代码:

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class DOM4jXMLTest {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {

	        Document document=DocumentHelper.createDocument();
	        //创建根节点
	        Element root=DocumentHelper.createElement("Book-inf0");
	        document.setRootElement(root);
	         
	        // 添加图书节点
	        Element book1=root.addElement("book");
	        //添加属性
	        book1.addAttribute("名称", "java开发入门经典");
	        //添加图书节点的子节点
	        Element book1_price=book1.addElement("价格");
	        book1_price.setText("78");
	        //添加图书节点子节点
	        Element book1_author=book1.addElement("作者");
	        book1_author.setText("大神");
	         
	        // 添加图书节点
	        Element book2=root.addElement("book");
	        //添加属性
	        book2.addAttribute("名称", "javaWEB开发");
	        //添加图书节点的子节点
	        Element book2_price=book2.addElement("价格");
	        book2_price.setText("98");
	        //添加图书节点子节点
	        Element book2_author=book2.addElement("作者");
	        book2_author.setText("奶茶妹");
	         
	        //设置编码集
	        OutputFormat format=new OutputFormat();
	        format.setEncoding("UTF-8");
	        //输出到指定文件
	     //----------这里有点点区别
	        String fileURL="f://book.xml";
	        Writer fileWriter=new FileWriter(fileURL); 
	        XMLWriter writer=new XMLWriter(fileWriter);
	        writer.write(document);
	        writer.close();
	        
	        
	
	}

}

  • 打赏
  • 举报
回复
不知道为什么,当我把上面的代码写成一个类而不是servlet类运行就可以, 为什么通过jsp调用这个servelt就没效果呢?
  • 打赏
  • 举报
回复
引用 4 楼 miraclestar 的回复:
xml文件贴出来
亲,我就是想通过我上面的代码生成一个xml文件,现在文件内容为空,我怎么贴出来

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧