package com.sihai.test
import java.io.File
import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import javax.xml.parsers.DocumentBuilder
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.parsers.ParserConfigurationException
import javax.xml.transform.OutputKeys
import javax.xml.transform.Result
import javax.xml.transform.Transformer
import javax.xml.transform.TransformerConfigurationException
import javax.xml.transform.TransformerException
import javax.xml.transform.TransformerFactory
import javax.xml.transform.dom.DOMSource
import javax.xml.transform.sax.SAXTransformerFactory
import javax.xml.transform.sax.TransformerHandler
import javax.xml.transform.stream.StreamResult
import org.dom4j.DocumentHelper
import org.dom4j.io.OutputFormat
import org.dom4j.io.XMLWriter
import org.jdom2.output.Format
import org.jdom2.output.XMLOutputter
import org.junit.Test
import org.w3c.dom.Document
import org.w3c.dom.Element
import org.xml.sax.SAXException
import org.xml.sax.helpers.AttributesImpl
public class CreateTest {
private void DOMCreateXML() {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance()
DocumentBuilder db = null
try {
db = dbf.newDocumentBuilder()
} catch (ParserConfigurationException e) {
e.printStackTrace()
}
Document document = db.newDocument()
document.setXmlStandalone(true)
Element bookstore = document.createElement("bookStore")
Element book = document.createElement("book")
Element name = document.createElement("name")
name.setTextContent("小王子")
book.appendChild(name)
book.setAttribute("id", "1")
bookstore.appendChild(book)
document.appendChild(bookstore)
TransformerFactory tff = TransformerFactory.newInstance()
try {
Transformer tf = tff.newTransformer()
tf.setOutputProperty(OutputKeys.INDENT, "yes")
tf.transform(new DOMSource(document), new StreamResult(new File(
"books1.xml")))
} catch (TransformerConfigurationException e) {
e.printStackTrace()
} catch (TransformerException e) {
e.printStackTrace()
}
}
public void SAXCreateXML() {
SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory
.newInstance()
try {
TransformerHandler handler = tff.newTransformerHandler()
Transformer tr = handler.getTransformer()
tr.setOutputProperty(OutputKeys.ENCODING, "UTF-8")
tr.setOutputProperty(OutputKeys.INDENT, "yes")
File f = new File("books2.xml")
if (!f.exists()) {
f.createNewFile()
}
Result result = new StreamResult(new FileOutputStream(f))
handler.setResult(result)
handler.startDocument()
AttributesImpl attr = new AttributesImpl()
handler.startElement("", "", "bookstore", attr)
attr.clear()
attr.addAttribute("", "", "id", "", "1")
handler.startElement("", "", "book", attr)
attr.clear()
handler.startElement("", "", "name", attr)
handler.characters("小王子".toCharArray(), 0, "小王子".length())
handler.endElement("", "", "name")
handler.endElement("", "", "book")
handler.endElement("", "", "bookstore")
handler.endDocument()
} catch (TransformerConfigurationException e) {
e.printStackTrace()
} catch (FileNotFoundException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
} catch (SAXException e) {
e.printStackTrace()
}
}
private void JDOMCreateXML() {
org.jdom2.Element bookstore = new org.jdom2.Element("bookstore")
org.jdom2.Document document = new org.jdom2.Document(bookstore)
org.jdom2.Element book = new org.jdom2.Element("book")
book.setAttribute("id", "1")
org.jdom2.Element name = new org.jdom2.Element("name")
name.setText("小王子")
book.addContent(name)
bookstore.addContent(book)
Format format = Format.getCompactFormat()
format.setIndent("")
format.setEncoding("UTF-8")
XMLOutputter outputer = new XMLOutputter(format)
try {
outputer.output(document, new FileOutputStream(new File("books3.xml")))
} catch (FileNotFoundException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}
}
private void DOM4JCreateXML(){
org.dom4j.Document document = DocumentHelper.createDocument()
org.dom4j.Element bookstore = document.addElement("bookstore")
org.dom4j.Element book = bookstore.addElement("book")
book.addAttribute("id", "1")
org.dom4j.Element name = book.addElement("name")
name.setText("小王子")
OutputFormat format = OutputFormat.createPrettyPrint()
format.setEncoding("UTF-8")
File file = new File("books4.xml")
XMLWriter writer
try {
writer = new XMLWriter(new FileOutputStream(file), format)
writer.setEscapeText(false)
writer.write(document)
writer.close()
} catch (IOException e) {
e.printStackTrace()
}
}
@Test
public void testPerformance() throws Exception{
System.out.println("性能测试:")
//测试DOM的性能:
long start = System.currentTimeMillis()
DOMCreateXML()
System.out.println("DOM:"+ (System.currentTimeMillis() - start))
//测试SAX的性能:
start = System.currentTimeMillis()
SAXCreateXML()
System.out.println("SAX:"+ (System.currentTimeMillis() - start) )
//测试JDOM的性能:
start = System.currentTimeMillis()
JDOMCreateXML()
System.out.println("JDOM:"+ (System.currentTimeMillis() - start) )
//测试DOM4J的性能:
start = System.currentTimeMillis()
DOM4JCreateXML()
System.out.println("DOM4J:"+ (System.currentTimeMillis() - start) )
}
}
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
在Java编程中,生成XML文件并发送报文是一项常见的任务,尤其在系统间的数据交换、API调用或者网络通信中。XML(eXtensible Markup Language)是一种结构化数据表示语言,具有良好的可读性和可扩展性,是数据传输的...
在Java编程中,生成XML文档是一项常见的任务,特别是在构建配置文件、数据交换或者保存结构化信息时。XML(eXtensible Markup Language)是一种标记语言,它的结构清晰、可读性强,非常适合用来存储和传输数据。...
导入XML文件到Java程序中,通常涉及解析XML文档。Java提供了多种解析器,如DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。DOM解析器将整个XML文档加载到内存中的树形...
在Java开发中,XML(可扩展...总结起来,Java生成XML和XSD涉及到XML和XSD的基本概念,以及使用JAXB等Java库进行XML操作的技术。在实际项目中,理解并熟练运用这些知识对于处理结构化数据的序列化和反序列化至关重要。
在Java编程环境中,生成Word文档是一项常见的任务,尤其在企业级应用中,如报告生成、数据分析等场景。XML解析方式是一种高效且灵活的方法,能够帮助我们实现这一目标。本篇文章将详细探讨如何利用Java和XML解析来...
XML文件自动转换为Java对象工具是一种实用的开发辅助软件,它可以帮助程序员快速地将XML数据映射到Java类,从而简化了数据处理的过程。在Java开发中,XML常被用作数据交换格式,但手动编写Java类来表示XML结构既耗时...
使用java把数据库数据导出生成xml文件 使用java把数据库数据导出生成xml文件
创建XML文件需要`Transformer`和`TransformerFactory`。以下代码将`Document`对象转换为XML文件: ```java TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer ...
本篇文章将深入探讨如何使用Java生成XML文档以及操作XML文件设置值。 一、Java生成XML文档 1. DOM(Document Object Model):DOM是W3C推荐的一种XML的标准API,它将XML文档解析为一个树形结构,允许我们通过节点...
2. SAX解析:SAX(Simple API for XML)是一种事件驱动的解析方式,它不创建完整的文档对象模型,而是按顺序读取XML文件,遇到元素、属性等时触发相应的事件回调。SAX解析适用于处理大型XML文件,因为它占用的内存较...
JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。
下面我们将深入探讨如何使用Java来创建XML文件,以及涉及的相关知识点。 首先,Java中创建XML文件的基本步骤包括: 1. **建立Document对象**:XML文件的基础是DOM(文档对象模型),它是XML的内存表示。我们可以...
本文将详细介绍如何使用Java来读取和修改XML文件,主要涉及以下几个核心知识点: 1. **DOM解析器**: Document Object Model(DOM)是一种将XML文档转换为内存中的树形结构的方法,使得可以遍历和修改XML文件。...
用java生成xml文档.DocumentBuilderFactory DocumentBuilder Document doc;至此可以用doc来操作xml文档了
1. **创建XML文档** 在发送XML之前,我们需要先构建XML文档。可以使用DOM(Document Object Model)或者SAX(Simple API for XML)解析器来生成XML文档。例如,使用DOM解析器创建XML如下: ```java ...
以下是一个简单的示例,展示如何使用DOM创建XML文件: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom....
总结起来,这个主题涵盖了XML的结构定义、JavaBean的创建以及两者之间的转换技术,这些都是Java开发中处理XML数据时的关键知识点。通过理解这些概念和技术,开发者可以更有效地管理和操作XML数据,构建健壮的Java...
- **基于树的编程(DOM)**:讨论如何使用DOM模型在Java中读取、修改和创建XML文档。 - **基于事件的编程(SAX)**:介绍SAX模型用于解析大型XML文件的高效方式。 - **基于规则的编程(XSLT)**:探讨XSLT在Java中...
无论是将Java对象持久化为XML存储,还是从XML文件加载数据到程序中,它都能大大简化工作流程,提高开发效率。在IDEA这样的开发环境中,利用构建工具管理依赖,结合实际的代码示例,学习和使用XStream变得非常容易。