javaweb怎么把一个action方法里面生成的XML(用dom4j操作)用另存为保存到想要的位置。
你好,我看到你问过上面这个问题,我现在也有跟你一模一样的问题~~不知道你是怎么解决的呢??能否帮忙解答一下~~谢谢!~~...
你好,我看到你问过上面这个问题,我现在也有跟你一模一样的问题~~不知道你是怎么解决的呢??能否帮忙解答一下~~谢谢!~~
展开
展开全部
//这是我写的一个生成xml的代码,如果有需要的话可以把dom4j包和实例发给你,也有解析xml的
package com.zuxia.dom4j;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
*
* 使用dom4j解析xml
*
* 1. 创建解析器
*
* 2. 创建文档对象Document
*
* 3. 获取根节点
*
*/
public class Dom4jParseXML {
public static void main(String[] args) {
//1. 创建解析器
SAXReader saxreader = new SAXReader();
Document doc = null;
try {
//2. 创建文档对象Document
doc = saxreader.read(new File("src/studentinfo.xml"));
} catch (Exception e) {
System.out.println("读取xml文件异常!");
}
//3. 获取根节点
Element root = doc.getRootElement();
//4. 获取元素
Iterator<Element> iter = root.elementIterator();
while(iter.hasNext()){
Element student = iter.next();
System.out.println("学号:"+student.attributeValue("stuno")+"\t姓名:"+student.elementText("name"));
}
//提示用户添加新的数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入学号:");
String stuno = sc.nextLine();
System.out.println("请输入姓名:");
String name = sc.nextLine();
System.out.println("请输入年龄:");
String age = sc.nextLine();
//将数据添加在Document中
Element student = root.addElement("student");
student.addAttribute("stuno", stuno);
student.addElement("name").addText(name);
student.addElement("age").addText(age);
//3. 设置格式
OutputFormat format = OutputFormat.createCompactFormat();
format.setIndentSize(4);
format.setNewlines(true);
try {
//4. 保存xml文件
XMLWriter out = new XMLWriter(new FileOutputStream("src/studentinfo.xml"),format);
out.write(doc);
System.out.println("ok!!!");
} catch (Exception e) {
System.out.println("失败!");
}
System.out.println("完成了!");
}
}
package com.zuxia.dom4j;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
*
* 使用dom4j解析xml
*
* 1. 创建解析器
*
* 2. 创建文档对象Document
*
* 3. 获取根节点
*
*/
public class Dom4jParseXML {
public static void main(String[] args) {
//1. 创建解析器
SAXReader saxreader = new SAXReader();
Document doc = null;
try {
//2. 创建文档对象Document
doc = saxreader.read(new File("src/studentinfo.xml"));
} catch (Exception e) {
System.out.println("读取xml文件异常!");
}
//3. 获取根节点
Element root = doc.getRootElement();
//4. 获取元素
Iterator<Element> iter = root.elementIterator();
while(iter.hasNext()){
Element student = iter.next();
System.out.println("学号:"+student.attributeValue("stuno")+"\t姓名:"+student.elementText("name"));
}
//提示用户添加新的数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入学号:");
String stuno = sc.nextLine();
System.out.println("请输入姓名:");
String name = sc.nextLine();
System.out.println("请输入年龄:");
String age = sc.nextLine();
//将数据添加在Document中
Element student = root.addElement("student");
student.addAttribute("stuno", stuno);
student.addElement("name").addText(name);
student.addElement("age").addText(age);
//3. 设置格式
OutputFormat format = OutputFormat.createCompactFormat();
format.setIndentSize(4);
format.setNewlines(true);
try {
//4. 保存xml文件
XMLWriter out = new XMLWriter(new FileOutputStream("src/studentinfo.xml"),format);
out.write(doc);
System.out.println("ok!!!");
} catch (Exception e) {
System.out.println("失败!");
}
System.out.println("完成了!");
}
}
追问
恩恩,谢谢~~
不过这个我已经知道了,其实我要问的跟dom4j没多大关系,只是我用dom4j整出来了一个document对象,也就是我要的xml文件,但我不想指定路径到服务器上("src/studentinfo.xml")...
我希望是页面弹出窗体、选择路径、将他下载到客户端上
应该跟response.setContentType()有关系~~怎么将document对象下载过来呢~~不会用!!
追答
直接用文件输出流FileOutputStream应该是可以下载到客户端的指定盘符下的吧 不过你如果要弹出一个文件保存框的话用java中的JFileChooser类应该可以,不过我对这个类也不怎么了解,它可以弹出文件保存框的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询