一个XML文档,可以先构造一个DOM,然后将DOM转化为xml序列,输出或者生成文件。网上有很多这样的代码,所以我这边也借鉴了一下别人的。以下的代码大部分是转的。
package test;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class Test {
public static void generate(){
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
document.setXmlVersion("1.0");
document.setXmlStandalone(true);
Element root = document.createElement_x("MobileNet"); //创建根节点
document.appendChild(root); //将根节点添加到Document对象中
Element pageElement = document.createElement_x("page"); //设置第一个page元素到
pageElement.setAttribute("name", "list.jsp"); //设置page节点的name属性
Element methodElement = document.createElement_x("method"); //设置method节点
methodElement.setTextContent("get"); //给method设置值
pageElement.appendChild(methodElement); //添加method节点到page节点内
Element displayElement = document.createElement_x("display"); //设置method节点
displayElement.setTextContent("list撒旦发放"); //给display设置值
pageElement.appendChild(displayElement); //添加display节点到page节点内
Element request_paramElement = document.createElement_x("request_param");
request_paramElement.setTextContent("request_param1|request_param2");
pageElement.appendChild(request_paramElement);
root.appendChild(pageElement);
pageElement = document.createElement_x("page"); //设置第二个page元素到
pageElement.setAttribute("name", "content.jsp"); //设置page节点的name属性
methodElement = document.createElement_x("method");
methodElement.setTextContent("post");
pageElement.appendChild(methodElement);
displayElement = document.createElement_x("display");
displayElement.setTextContent("content");
pageElement.appendChild(displayElement);
Element url_titleElement = document.createElement_x("url_title"); //设置url_title节点
url_titleElement.setTextContent("title,publisher,published_calendar"); //给url_title设置值
pageElement.appendChild(url_titleElement); //添加url_title节点到page节点内
root.appendChild(pageElement); //将page段加人根节点内
TransformerFactory transFactory = TransformerFactory.newInstance(); //开始把Document映射到文件
Transformer transFormer = transFactory.newTransformer();
DOMSource domSource = new DOMSource(document); //设置输出结果
File file = new File("MobileNetRule.xml"); //生成xml文件
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream out = new FileOutputStream(file); //文件输出流
StreamResult xmlResult = new StreamResult(out); //设置输入源
transFormer.transform(domSource, xmlResult); //输出xml文件
System.out.println(file.getAbsolutePath()); //测试文件输出的路径
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty("{/encoding/}","GB2312/");
ByteArrayOutputStream boc = new ByteArrayOutputStream();
t.transform(new DOMSource(document), new StreamResult(boc));
String xmlstring = boc.toString();
System.out.println(xmlstring);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args){
Test.generate();
}
}
输出文件之后的代码是自己编写的,将一个Document对象转换为一个String类型,这里需要使用的是Transformer类的transform方法。编写的时候遇到了两个问题:
第一: displayElement.setTextContent("content");这样的方法在另外一个Eclipse编辑器中找不到,怀疑是版本的问题,所以改成了这样使用displayElement.appendChild(document.creatTextNode("content"));
第二:仍旧是在另一个机器的Eclipse中找不到方法setXMLVersion,最后终于发现问题,在lib文件夹下有其他xml操作包,所以造成方法找不到。所以,以后编辑程序的时候,一定要注意导入的包。不使用的包要及时清除。
分享到:
相关推荐
JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。
java生成xsd,xml示例
java生成xml文件的时候如何控制xml的缩进格式.pdf
一个可以用java自动生成xml的文件 参考此文件可以从数据库里面提取数据后生成xml数据库
java 生成xml文件java 生成xml文件java 生成xml文件java 生成xml文件
使用java把数据库数据导出生成xml文件 使用java把数据库数据导出生成xml文件
java 通过模板生成 xml,发送报文
java读取xml文件 ,程序自带jar包在mylib下,加入工程即可,工程导入可用,更具自己需要读取xml文件生成所需文件。
用java生成xml文档.DocumentBuilderFactory DocumentBuilder Document doc;至此可以用doc来操作xml文档了
JAVA生成XML文件.doc
java_动态生成XML文件
由于程序使用的局点数据量巨大,需要生成xml文件的客户资料接近千万级别的程度,而现场对程序的配置大约是100W条数据生成一个xml文件里面去,程序在这样的大数据量下面偶尔会有崩溃。最近几天现场催的比较紧,最近...
例如xml文件的形式是<student><age>1</age><age2>2</age2></student>,在Java文件中设置demo路径,要替换的值,最后分别生成xml文件,例如要换成aa,则xml两个,一个为<student><age>aa</age><age>2</age></student>,...
通过java文件生成对应的xml文档 模拟个spirng简单框架例子!
java读取Excel表中的内容,可以读取多个sheet,生成自定义格式的xml文件
JDOM 是一个开源项目,基于树型结构,利用纯 Java 技术对 XML 文档实现解析、生成、序列化以及多种操作。JDOM 直接为 Java 编程服务,利用 Java 语言的诸多特性(方法重载、集合概念以及映射),把 SAX 和 DOM 的...
java jsp生成中文xml java jsp生成中文xml
输入数据生成一个XML文件 然后对XML文件进行解析显示