一个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(可扩展...总结起来,Java生成XML和XSD涉及到XML和XSD的基本概念,以及使用JAXB等Java库进行XML操作的技术。在实际项目中,理解并熟练运用这些知识对于处理结构化数据的序列化和反序列化至关重要。
JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。
本教程将深入讲解如何使用Java动态生成XML文件,并涉及相关的类和方法。 首先,我们需要了解两个核心的Java API:`javax.xml.transform`和`javax.xml.parsers`。前者主要用于XML文档的转换,后者则用于处理XML的...
java生成xml文件的时候如何控制xml的缩进格式.pdf
Java语言在处理XML文件时,提供了丰富的API和库,使得我们可以轻松地读取、解析、修改和生成XML文档。在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明...
使用java把数据库数据导出生成xml文件 使用java把数据库数据导出生成xml文件
在Java编程中,生成XML文件并发送报文是一项常见的任务,尤其在系统间的数据交换、API调用或者网络通信中。XML(eXtensible Markup Language)是一种结构化数据表示语言,具有良好的可读性和可扩展性,是数据传输的...
本篇文章将深入探讨如何使用Java来生成XML文件,并结合数据库操作进行数据提取。 首先,我们需要了解XML的基本结构。XML文件由一系列元素组成,每个元素都有开始标签(如`<element>`)和结束标签(如`</element>`)...
以题目中提到的`BOMappingHandlerGenerater`为例,这个工具可能是一个自定义的Java代码生成器,专门用来生成Bo(Business Object)对象和相关的XML映射文件。它可能接收用户输入的数据库表信息,然后根据这些信息...
用java生成xml文档.DocumentBuilderFactory DocumentBuilder Document doc;至此可以用doc来操作xml文档了
### JAVA生成XML文件知识点 #### 一、简介 在Java编程中,生成XML文件是一种常见的需求,尤其是在数据交换、配置管理或系统间通信时。...以上就是关于使用Java生成XML文件的核心知识点及代码示例。希望对你有所帮助!
由于程序使用的局点数据量巨大,需要生成xml文件的客户资料接近千万级别的程度,而现场对程序的配置大约是100W条数据生成一个xml文件里面去,程序在这样的大数据量下面偶尔会有崩溃。最近几天现场催的比较紧,最近...
在Java中生成XML文档,我们可以使用多种库,例如JDOM、DOM4J、Java内置的DOM API等。这里我们将重点讨论使用JDOM库的方法。JDOM是一个专门为Java设计的API,用于处理XML文档,它提供了一种简单且高性能的方式来创建...
MySQL数据库自动生成XML文件是一项实用的技术,它可以帮助开发者快速地将数据库中的数据转换为XML格式,便于数据交换、存储或进一步处理。这项技术通常结合代码生成工具,如MyBatis的Generator,能够自动化生成DAO...
Java解析和生成XML的知识点主要涵盖了使用JAXB(Java Architecture for XML Binding)框架来实现Java对象与XML(可扩展标记语言)之间的数据转换。JAXB提供了一种便捷的方式,通过注解(Annotation)来实现这一过程...
2. **生成Java类结构**:根据XSD中的元素和属性,工具自动生成对应的Java类,每个元素变成类的一个字段,属性则作为类的getter和setter方法。 3. **处理复杂类型**:如果XSD中定义了复杂类型,工具会创建相应的Java...
例如xml文件的形式是<student><age>1</age><age2>2</age2></student>,在Java文件中设置demo路径,要替换的值,最后分别生成xml文件,例如要换成aa,则xml两个,一个为<student><age>aa</age><age>2</age></student>,...
在提供的压缩包文件中,只有一个名为"xml"的文件,这可能是一个示例XML文件,用于展示如何在Java中生成或处理XML。为了更好地理解,需要查看这个文件的内容,以便根据具体的XML结构和需求选择合适的处理方法。
在生成这些文件时,你需要为每个表定义一个Mapper接口,并在XML文件中编写对应的SQL查询。例如,`<select>`标签用于定义查询,`<insert>`、`<update>`和`<delete>`分别对应插入、更新和删除操作。同时,`<resultMap>...