`
zybing
  • 浏览: 463052 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[XML]XML的保存

 
阅读更多

 

XML的保存

XML 持久化存储到文件中去

 

 

1. 使用 DOM JDOM 之类的 API XML 数据结构直接写入文件

2. 使用 Transformation API for XML (TrAX) 和标识转换(identity transformation)持久化存储您的 XML

3. 使用 JAXB 之类的较高级别的 API 处理持久化存储

 

 

直接使用 API

 

如果使用一个或多个 API 读取 XML,那么很明显的一个方法就是使用与之相 同的 API XML 写入文件。比如说,如果您使用 JDOM API 和一个 JDOM Document 对象操作 XML,那么可以编写以下代码:

 

XMLOutputter outputter = new XMLOutputter();

outputter.setFormat(Format.getPrettyFormat());

outputter.output(myDocument, new FileWriter ("outputFile.xml"));

 

与此类似,在 DOM Level 3 中可以使用新的 Load Save API

 

DOMWriter writer = new  org.apache.xml.serialize.XMLSerializer();

writer.setNewLine("\r\n");

writer.setEncoding("UTF-8");

writer.writeNode(new FileOutputStream(new File("outputFile.xml")),  myDocument);

 

注意,使用新 DOM API 的方法多种多样,其中有一些具有较低的供应商独立 性。上面的示例代码中含有一个特定于 Xerces 的类,但是其他方法不会像它一 样与某个特定的供应商类紧密绑定在一起。从学习的角度来说,那些方法都不够 直观,因此我保留了特定于供应商的代码。

 

 

 

转换格式

另一个流行的选择是使用 TrAX 和标识转换。TrAX Transformation API for XML 的缩写,它现在是 JAXP 的一部分,而 Java 平台的每一个发行版中都 含有 JAXP(除了 Micro Edition)。TrAX 允许您使用 XSL 样式表对 XML 进行 转换。由于 XML 经常需要结合 SAX DOM 一起使用,因此 TrAX 可以接收 SAX 事件和 DOM Document 作为输入,并能够轻易地产生输出文件。此外,TrAX 还可以轻松地对这些格式进行相互转换。比如说,您可以使用以 DOM 表示的 XML 文档作为输入,并对它进行转换,然后再将输出发送到文件中。或者您也可 以读取文件中的内容,并对它进行转换操作,然后再将结果文档存储到 DOM Document 中。

 

这种方法的另外一个作用是,您可以使用一个不含任何文档操作的样式表, 并使用某种格式作为输入,然后将这种格式输出为任意其他的格式。使用不具转 换功能的样式表 实际上指不执行任何操作但回转所接收的输入内容的样式表 称作 标识转换(identity transformation)。因此您可以从文件中获得文 档,然后应用标识转换,最终在 DOM Document 中生成相同的 XML。如果您采用 相反的方式 DOM 到文件 那么实际上可以实现持久化存储 XML。这种 方法类似于以下过程:

 

Source domSource = new DOMSource(myDOMDocument);

Result fileResult = new StreamResult(new File ("outputFile.xml"));

TransformerFactory factory = TransformerFactory.newInstance ();

Transformer transformer = factory.newTransformer();

transformer.transform(domSource, fileResult);

 

此处,DOM 文档中的 XML 最终转换为了一个 outputFile.xml 文件。

 

使用数据绑定实现持久化存储

 

XML 转换为静态格式的另一种方法 特别是您希望这种格式是位于磁盘 上的文件 是使用 JAXB 之类的数据绑定 API。虽然通常人们不会考虑使用数 据绑定来实现持久化存储,但是它可以有效地实现:读取内存中表示的 XML 档并将其写入文件。

 

我没有太多时间详细介绍数据绑定的概念(您可以在 developerWorks 网站 上阅读一些这方面的文章);下面这段简短的代码使用了 JAXB 方式的数据绑定 实现持久性存储:

 

FileOutputStream stream = new FileOutputStream ("outputFile.xml");

Marshaller marshaller = myJaxbContext.createMarshaller();

marshaller.marshal(myJavaObject, stream);

 

您可以设置一些选项,比如说输出文件的编写,所有设置都在 Marshaller 对象中。事实上,JAXB 在设置输出属性方面的灵活性与前面两种方法是不相上 下的。

分享到:
评论

相关推荐

    利用pugixml 转化xml为string

    利用pugixml 转化xml为string

    图片保存进XML文件的方法

    本文将深入探讨如何将图片数据保存到XML文件中,以及如何从XML文件中恢复图片。 首先,我们需要理解图片和XML之间的转换原理。图片本质上是二进制数据,而XML文件则主要用于存储结构化文本信息。为了将图片保存到...

    读取和保存XML

    在C++中读取和保存XML,通常需要借助第三方库,如TinyXML、pugixml、libxml2等。这些库提供了API,使得程序员能够方便地解析XML文档,访问其元素、属性和文本内容,并创建新的XML结构。 对于"读取XML",通常的过程...

    TreeView 结点 保存XML

    例如,一个简单的XML保存函数可能如下所示: ```csharp private void SaveTreeViewToXML(TreeView treeView, string filePath) { XmlDocument xmlDoc = new XmlDocument(); XmlElement rootElement = xmlDoc....

    MFC保存控件数据到xml及读取xml数据到控件

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 框架与XML库,如TinyXML2,来实现保存控件数据至XML文件以及从XML文件中读取数据回控件的功能。这对于创建应用程序配置文件或者保存用户自定义...

    C#中利用XML文件保存数据

    本资源提供了一种利用C#操作XML文件来保存和读取数据的方法,这对于初学者了解如何在应用程序中持久化数据极其有用。 XML文件通常用于存储配置信息、数据传输或保存程序状态。C#提供了System.Xml命名空间,其中包含...

    vb.net xml创建保存读取

    doc.Save("路径\to\file.xml") ' 保存到指定文件 ``` 二、XML文件的读取 读取XML文件,通常使用`XDocument.Load`方法加载XML文档,然后通过LINQ查询或遍历节点来获取所需信息: ```vbnet Dim doc As XDocument = ...

    pb下读写xml文件的例子.rar_pb_pb 读取xml_pb 读取xml文件_pb9 xml_pb下读写xml文件的例子

    3. 保存XML文件:使用`SaveXMLFile()`方法,将XMLDocument对象的内容保存到文件中。 例如: ```powerbuilder object xmlDoc : XMLDocument string strFilePath = "C:\new_example.xml" // 创建XMLDocument对象 ...

    Qt绘制各种图形并且保存为XML

    不仅如此,Qt还允许我们将这些图形保存为XML格式,便于数据交换、存储和后期处理。 首先,要绘制图形,我们需要创建一个继承自`QWidget`或`QGraphicsView`的类,然后重写`paintEvent(QPaintEvent *)`方法。在这个...

    操作xml文件_保存xml文件_操作XML_

    在处理XML文件时,通常涉及的主要操作包括创建、读取、修改和保存。下面将详细阐述这些知识点。 一、创建XML文件 创建XML文件首先需要遵循XML的基本语法规则,如声明文档类型(`<?xml version="1.0" encoding="UTF-...

    Qt读写Xml文件(QTreeWidget加载显示Xml文件内容;QTreeWidget项导出保存为Xml)

    通过Qt的XML模块,我们可以方便地读取XML文件,将其内容加载到QTreeWidget中展示,同时也能将QTreeWidget中的数据导出并保存为XML文件。此外,我们还将讨论QTreeWidget项的拖放功能,使得用户可以更加直观地操作数据...

    delphi 如何使用XML保存查询结果

    通过实例158 如何使用XML保存查询结果的代码,你将获得更具体的实现细节,包括可能的自定义方法和组件用法。这个实例对于初学者来说,是一个很好的学习资源,能够帮助他们理解Delphi与XML的交互方式。

    解析并保存xml

    本文将深入探讨如何通过Socket编程来获取XML文件内容,并将其保存到本地,随后进行解析。首先,我们需要理解Socket编程的基本概念。 Socket编程是网络编程的核心部分,它提供了进程间的通信机制,允许不同计算机上...

    保存数据为XML格式

    总结,C#中保存数据为XML格式涉及到对System.Xml命名空间的理解和应用,包括创建XML文档、元素、属性,并将它们组织成符合需求的结构,最后将其保存到文件。这使得数据能够以标准、跨平台的方式进行存储和传输。在...

    xml文件保存自动刷新

    标题中的“xml文件保存自动刷新”指的是当开发者在编辑并保存XML配置文件后,系统能够自动检测到这些变化并立即应用它们,无需手动刷新或重启应用。在Spring和MyBatis集成的环境中,这种功能可以显著提升开发者的...

    QT读取xml文件将所有节点保存到treewidget中

    本篇文章将深入探讨如何在QT4中读取XML文件,并将所有节点保存到`QTreeWidget`中。 首先,我们需要导入必要的QT库,包括`QtXml`和`QtWidgets`: ```cpp #include #include #include ``` 接下来,我们需要一个...

    XML文件写入保存本地

    本文将详细介绍如何将XML文件写入本地,并进行解析,同时讨论自定义保存路径的相关策略。 1. **XML文件结构** - XML文件由元素(Element)、属性(Attribute)、文本内容(Text Content)等组成,元素是XML文档的...

    关于Delphi7读取保存XML

    关于Delphi7读取保存XML 读取XML,修改节点,保存XML的一个完整实例。

    数据保存到xml练习

    本项目“数据保存到xml练习”主要关注如何通过单页表单收集用户输入,然后将这些数据保存到XML文件中。下面我们将详细探讨这个过程涉及的关键知识点。 首先,`singlePageList.aspx`和`singlePageAdd.aspx`是两个...

    c#将XML文档保存到指定的文件

    根据给定的信息,本文将详细解释如何使用C#编程语言将XML文档保存到指定的文件。此示例涉及的关键概念包括XML文档操作、C#基本语法、事件处理以及Web应用程序中的页面生命周期管理。 ### 一、理解XML文档 XML...

Global site tag (gtag.js) - Google Analytics