`
isiqi
  • 浏览: 16465675 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

合并多个XML文件的简单方法 —— 外部实体引用(转)

XML 
阅读更多

下面的例子通过外部实体引用,将文件order1.xml与文件order2.xml合并为一个文件directory.xml

清单1. 要合并的xml文档order1.xml:

<?xml version="1.0" encoding="GB2312"?>

<order>
<item>
<itemNumber>ksu-0384</itemNumber>
<description>LCD液晶显示器</description>
<quantity>1</quantity>
<price>358.00</price>
</item>
<item>
<itemNumber>ksu-0511</itemNumber>
<description>音箱</description>
<quantity>1</quantity>
<price>16.50</price>
</item>
<item>
<itemNumber>ksu-7710</itemNumber>
<description>鼠标</description>
<quantity>1</quantity>
<price>8.50</price>
</item>
</order>

清单2. 要合并的xml文档order2.xml:

<?xml version="1.0" encoding="GB2312"?>

<order>
<item>
<itemNumber>ksu-0652</itemNumber>
<description>双飞燕键盘</description>
<quantity>1</quantity>
<price>35.00</price>
</item>
<item>
<itemNumber>ksu-7720</itemNumber>
<description>intel CPU</description>
<quantity>1</quantity>
<price>1650.00</price>
</item>
<item>
<itemNumber>ksu-7010</itemNumber>
<description>迈拓硬盘</description>
<quantity>1</quantity>
<price>850.00</price>
</item>
</order>

清单3. 输出文档directory.xml,黑体字部分为实体声明及其引用:

<?xml version="1.0"?>
<!DOCTYPE directory [
<!ENTITY disclaimer1 SYSTEM "./order1.xml">
<!ENTITY disclaimer2 SYSTEM "./order2.xml">
]>
<directory>
&disclaimer1;
&disclaimer2;

</directory>

当符合 XML 1.0 的处理器读取文档时,就会扩展实体,用它的内容代替引用,因此完整的文档如下所示。

清单4. 带有扩展实体的文档显示(IE6中):

<?xml version="1.0" ?>
<!DOCTYPE directory (View Source for full doctype...)>
- <directory>
- <order>
- <item>
<itemNumber>ksu-0384</itemNumber>
<description>LCD液晶显示器</description>
<quantity>1</quantity>
<price>358.00</price>
</item>
- <item>
<itemNumber>ksu-0511</itemNumber>
<description>音箱</description>
<quantity>1</quantity>
<price>16.50</price>
</item>
- <item>
<itemNumber>ksu-7710</itemNumber>
<description>鼠标</description>
<quantity>1</quantity>
<price>8.50</price>
</item>
</order>
- <order>
- <item>
<itemNumber>ksu-0652</itemNumber>
<description>双飞燕键盘</description>
<quantity>1</quantity>
<price>35.00</price>
</item>
- <item>
<itemNumber>ksu-7720</itemNumber>
<description>intel CPU</description>
<quantity>1</quantity>
<price>1650.00</price>
</item>
- <item>
<itemNumber>ksu-7010</itemNumber>
<description>迈拓硬盘</description>
<quantity>1</quantity>
<price>850.00</price>
</item>
</order>
</directory>

分享到:
评论

相关推荐

    xml多个文件合并(delphi)

    本项目"xml多个文件合并(delphi)"提供了Delphi操作XML文件的示例代码,帮助开发者了解如何在Delphi中合并多个XML文件。 首先,我们需要理解XML文件的基本结构。XML文件由元素(Element)、属性(Attribute)、...

    XML文件与实体类的互相转换

    Config类中可以包含多个属性,例如ClientDescription、IsAuto、CustomerInfos和ScanConfigs等,每个属性都可以对应XML文件中的一个节点。 为了将XML文件反序列化为实体类对象,我们需要使用[XmlRoot]、[XmlElement]...

    python通用模块,合并xml格式文件

    将多个xml格式文件,高效合并为一个标准的xml格式文件,输出为一个xml格式文件。注:在文件层面的操作,不需要逐个解析节点。

    任意XML转实体类 实体类 转XML 方法 JAVA

    将XML数据转换为Java实体类(Bean)以及将实体类转换回XML是两个重要的操作,这对于数据的序列化和反序列化至关重要。下面将详细解释这两个过程以及涉及的相关知识点。 首先,XML转实体类的过程通常涉及到Java的...

    在web.xml中引入其他xml配置文件的步骤

    接下来,要在`web.xml`中通过实体引用的方式引入外部的`test.xml`文件。具体操作如下: 1. **定义实体引用**:在`web.xml`的文档类型定义(DTD)中,通过`&lt;!ENTITY&gt;`元素定义一个实体引用,指定实体名称和指向外部...

    xml外部实体攻击

    4. 第三方分布式拒绝服务攻击(DDoS):攻击者通过在XML实体引用中包含外部URL,对第三方进行攻击。 修复XXE攻击的方法包括: 1. 关闭外部实体处理:这是最直接的修复方法,许多现代XML解析库提供了关闭外部实体...

    XML解析器————

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件、文档存储等领域。XML解析器是处理XML文档的核心工具,它读取XML文档并将其转换为程序可以理解的形式。Xerces-J是Apache...

    android开发之xml文件操作——SAX

    在Android开发中,XML文件操作是一项基础且重要的技能,特别是在布局设计、数据存储以及网络通信等方面。本项目以“SAX”为焦点,探讨如何在Android中使用SAX解析器处理XML文件。SAX(Simple API for XML)是一种...

    C# 生成xml文件,编码为utf-8方法

    C# 生成 XML 文件,编码为 UTF-8 方法 C# 生成 XML 文件,编码为 UTF-8 方法是指在 C# 编程语言中,使用特定的方法和类来生成 XML 文件,并将其编码为 UTF-8 编码格式的过程。这种方法常用于数据交换、配置文件、...

    xml技术指南——————宝典

    XML的语法规定了如何描述你的数据,比如上面提到的例子,`&lt;hamburger name="CowBurger" lowfat="dream on"/&gt;`就是一个XML元素,它包含了两个属性:name和lowfat。 XML的关键特性包括: 1. **大小写敏感**:在XML中...

    xml与实体类转换工具

    本文将详细介绍如何使用工具类进行XML与实体类的转换,并探讨相关依赖和实现方法。 首先,XML转换为Java实体类的基本原理是通过解析XML文档,创建对应的Java对象。Java中常用的库有JAXB(Java Architecture for XML...

    合并2个结构相同的xml文件

    以下是一个简单的XSL转换示例,展示了如何合并两个结构相同的XML文件: ```xml &lt;xsl:output method="xml" indent="yes"/&gt; &lt;!-- 导入第二个XML文件 --&gt; &lt;xsl:import href="file2.xml"/&gt; &lt;!-- 处理根节点 --&gt; ...

    android开发之xml文件操作——xml创建和pull解析xml

    在Android开发中,XML文件操作是一项基础且重要的技能,它涉及到资源管理、数据持久化以及配置文件等多个方面。本项目主要关注的是XML的创建和使用Pull解析器来解析XML,这是Android系统中处理XML数据的一种高效方法...

    c# XML 与实体相互转换 源代码

    在压缩包中的`xmlEntity`文件可能是实现这些转换的源代码,包括实体类定义和转换方法的具体实现。分析并理解这些代码可以帮助我们更深入地了解作者是如何处理XML和实体对象的转换的。 总的来说,XML与实体对象的...

    解析XML特殊字符方法

    除了实体引用,XML还提供了一种特殊的结构——CDATA区(Character Data),用于包含一大段不应被解析的文本。在CDATA区内,解析器会忽略所有特殊字符。例如: ```xml &lt;![CDATA[ 这里可以放不会被解析的文本,包括...

    XML文件转成TXT文件

    XML(Extensible Markup Language)是一种标记语言,常用于存储结构化数据,而TXT文件则是一种简单文本文件,不含任何格式信息。在某些情况下,我们可能需要将XML文件转换为TXT文件,例如为了简化数据处理、减少文件...

    Freemarker代码生成器实体映射xml的ftl模板文件

    在这个场景下,"Freemarker代码生成器实体映射xml的ftl模板文件"是指利用Freemarker模板技术来创建一个用于生成XML实体映射文件的模板。这个`XML.ftl`文件就是核心,它是Freemarker模板的实例,其中定义了如何根据...

    C# 实现的XML读写合并

    这样,我们就能够将多个XML文件合并成一个大的XML文件。 总的来说,C#提供了一套强大的工具来处理XML数据。通过结合使用`XmlDocument`类的`Load`、`Save`、`CreateElement`、`AppendChild`等方法,我们可以方便地...

    xml合并工具 gooseeker

    Gooseeker,作为一个XML合并工具,旨在帮助用户有效地整合和管理多个XML文件,实现数据的集中和统一处理。这个工具可能包含了一系列功能,如文件选择、数据预览、合并操作、格式验证等,以简化XML文件处理过程。 ...

    生成XML文件ABAP程序

    在处理XML数据时,ABAP提供了一个强大的库——IXML,用于创建、读取和操作XML文档。 ### 2. 创建IXML工厂对象 在ABAP程序中,首先需要创建一个IXML工厂对象。这一步是创建XML文档的基础。示例代码中通过`cl_ixml=&gt;...

Global site tag (gtag.js) - Google Analytics