`

XML 文件中出现 & ? ?

阅读更多
这几天在跟一个公司合作的项目中,对方提供了RSS接口,通过这个接口,在我们网站展现出来,但是对方RSS中出现了一些麻烦的字符,比如 &,®,™ 等。这些字符放到XML中,如果不做特殊处理,就会有错误产生。比如下面的XML:

<item>&</item>

在IE 浏览器,以及一些解析用的DOM中解析这个片段,就会产生错误。

在W3C的技术规范中,也可以看到这样的字符不允许出现:
http://www.w3.org/TR/2001/REC-xml-c14n-20010315

比如:对 Text Nodes 允许的字符有如下要求: the string value, except all ampersands are replaced by &, all open angle brackets (< ) are replaced by <, all closing angle brackets (> ) are replaced by >, and all #xD characters are replaced by .

由于这些特殊字符比较多,我们在XML中替换的工作量比较大,我们可以在DTD文件中作些定义:

比如DTD文件中增加以下部分:

<!-- PERCENT SIGN -->
<!ENTITY amp "&#38;">
<!-- COPYRIGHT SIGN -->
<!ENTITY reg "®">
<!-- REG TRADE MARK SIGN -->
<!ENTITY trade "™">

并在XML中定义这个XML文件需要这个DTD支持:

<!DOCTYPE HeadCount SYSTEM "eula.dtd">

这样在XML文件中出现 & ® ™ 这类特殊字符就不会再报错了。
分享到:
评论

相关推荐

    脚本可以批量去除XML文件中的<?xml version=“1.0“ encoding=“utf-8“?>

    脚本可以批量去除XML文件中的<?xml version=“1.0“ encoding=“utf-8“?>

    TIA博途V17中DB块如何导出成源文件或XML文件或EXCEL中?.pdf

    TIA博途V17中DB块如何导出成源文件或XML文件或EXCEL中? 博途中导出DB块的3种方法介绍。

    QT程序中修改XML文件

    QT程序中修改XML文件是一个常见的任务,特别是在软件开发中,XML作为一种结构化数据存储格式,经常用于配置文件、数据交换等。本程序示例展示了如何在QT环境下利用C++进行XML文件的操作,编译环境为Visual C++ 6.0。...

    java导入导出xml文件

    本文将深入探讨如何在Java中进行XML文件的导入与导出。 首先,理解XML的基本结构至关重要。XML文件由一系列的元素构成,每个元素都有可能包含子元素或者文本内容。元素通过开始标签 `&lt;tag&gt;` 和结束标签 `&lt;/tag&gt;` ...

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

    为了提高代码的可维护性和复用性,有时需要将一部分配置内容提取到独立的XML文件中,再在`web.xml`中引用这些文件。本文将详细介绍如何在`web.xml`中引入其他XML配置文件,并解决可能出现的问题。 #### 步骤一:...

    android中apk包中的xml文件解密

    XML文件在APK中扮演着重要的角色,用于存储布局、字符串、颜色、动画等资源。由于APK文件通常是二进制格式并进行了加密处理,直接查看其内部的XML文件并不容易。本篇文章将详细介绍如何在Android中对APK包中的XML...

    VS之XML文件操作

    在Visual Studio(VS)中,XML文件操作是一个重要的开发任务,尤其对于处理数据存储、配置文件、序列化或数据交换等场景。XML(eXtensible Markup Language)是一种标记语言,它提供了结构化的数据表示方式,易于...

    Qt读写Xml文件,QTreeWidget显示Xml和导出Xml文件

    在Qt框架中,XML文件是一种常见的数据存储格式,它提供了结构化的数据表示方式,便于程序读取和写入。QTreeWidget是Qt提供的一种用于显示树状结构数据的控件,它可以很好地展示XML文件的层次结构。QXml是Qt中的XML...

    idea中pom.xml文件

    idea中pom.xml文件

    xmlbuddy eclipse插件,编写xml文件

    XMLBuddy是一款强大的XML编辑器插件,专为Eclipse集成开发环境设计,极大地提升了XML文件的编写效率和准确性。这款插件对于开发者,特别是那些在处理Hibernate等框架时需要频繁与XML配置文件打交道的人来说,是非常...

    C++ 读写XML文件

    本项目"**C++ 读写XML文件**"是针对MFC(Microsoft Foundation Classes)框架的一个示例,展示了如何在C++环境中方便地操作XML文件。 首先,我们需要了解XML的基本结构。XML文件由元素(Element)、属性(Attribute...

    XML文件的加密与解密

    通过对XML文件进行加密与解密,可以有效地保护数据安全,尤其是在网络传输和存储过程中。利用.NET Framework提供的强大工具如`RijndaelManaged`类和`XmlDocument`类,开发者能够轻松实现这一目标。然而,在实际部署...

    C# XML文件读取示例

    本示例将详细介绍如何在C#中读取XML文件,帮助开发者理解并掌握相关技术。 首先,让我们了解XML文件的基本结构。XML文件通常包含元素(Element)、属性(Attribute)、文本内容(Text Content)等组成部分。元素是...

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

    保存XML文件通常在修改后执行,上述示例中的最后一部分就演示了如何使用DOM和TransformerAPI来保存修改。保存时可以指定格式化输出,如添加缩进和换行,以提高可读性。例如: ```java transformer....

    LabVIEW利用OLE自动化读写XML文件

    我们为什么要在LabVIEW中使用XML文件?①它是许多服务器数据传输的基本格式,在网络编程中有很大的几率要使用它。②它比ini文件功能强大,它可以编写复杂逻辑关系的数据配置文件,类似一个微型的数据库文件。。。。。...

    MATLAB读取XML格式的数据文件

    这个函数将XML文件解析成一个XML文档对象模型(DOM),然后可以通过DOM API访问XML文件中的元素、属性和文本。例如,如果你有一个名为"data.xml"的XML文件,你可以这样读取它: ```matlab doc = xmlread('data.xml'...

    xml文件转xsd文件

    1. **理解XML文件结构**:首先,需要理解XML文件中的元素、属性及其关系。XML文件由一系列的元素组成,每个元素可能有子元素、属性等。这些元素的层次关系和命名规则构成了XML的结构。 2. **创建XSD草稿**:基于XML...

    将xml文件转换成csv格式

    2. **解析XML文件**:使用XML解析器,如Python的`ElementTree`库,Java的`JDOM`或`DOM4J`,或者JavaScript的`DOMParser`,来读取和解析XML文件。解析器能够将XML文档转化为可操作的对象结构。 3. **构建CSV数据模型...

    Visual basic 6.0 的读XML文件代码

    在Visual Basic 6.0(VB6)中处理XML文件是一项常见的任务,特别是在与Web服务交互或存储结构化数据时。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,具有良好的可读性和跨平台兼容性。下面将详细介绍...

    XML 文件读取及管理工具 VC++源代码 显示XML文件结构,剖析XML文件,管理XML文件变得方便

    XML 文件读取及管理工具 VC++源代码 显示XML文件结构,剖析XML文件,管理XML文件变得方便

Global site tag (gtag.js) - Google Analytics