XML中的特殊字符

摘要: XML文件又称可扩展标记语言,自然是由多个标签嵌套而成。既然是标签,那么就需要一些特殊的字符来标识.例如:<>左右尖括号. 另外也对xml中常引入properties文件作用做一说明。

XML是什么

XML指的是Extensible Markup Language,即可扩展标记语言。既然是语言,就有语法要求。很类似HTML(超文本标记语言),用来传输数据。当然XML和XSL结合也可以用来显示数据。XML不像HTML规定了标签的名称,使用XML需要自定义标签。

特殊字符

众所周知,在使用HTML的时候特殊字符是需要转义后才可以正常展示得。例如<用&lt;代替。同时XML作为标记语言也需要转义特殊字符如下表所示:
特殊符号 转义字符 描述
< &lt; 小于号,标签左尖括号
> &gt; 大于号,标签右尖括号
& &amp; 逻辑与
' &apos; 单引号
" &quot; 双引号
使用转义字符的目的便是为了正确的输出特殊字符。

为什么要处理特殊字符

前面简单介绍了XML以及特殊字符。那么可能有一个疑惑“为什么需要处理XML中的特殊字符”或者“不处理XML中的特殊字符又会怎样”。这时候我们不得不先去了解XML的工作原理,首先看下XML的解析过程如下图: 从以上解析过程中可以看出,直接与XML文档接触的是XML解析器。作为解析器自然要对XML文档的语法进行解析。若有特殊字符,在读取的过程中则会将原有的标签对进行截断,导致语法错误报错。

如何处理特殊字符

根据之前的描述特殊字符在xml文档中处理不当则会导致解析失败。那么如何处理特殊字符,下面根据实际情况给出几种方案:

简单而彻底的方案

直接在xml文档中使用转义字符转义特殊字符便可解决问题,这是最根本也是最简单的处理方式。

在xml中引入properties文件

为什么会把这种方式特别提出来呢?因为我们常常在项目中使用xml文件作为一些工具的配置文件,而配置信息为了安全期间常常设置为带有特殊字符的信息。 这个时候如果直接依然按照方案1直接在xml中使用特殊字符进行处理则会显得繁琐。也许大家在使用Spring的时候都会将数据源的配置信息单独提出来写在一个jdbc.properties文件里,那么为什么这样写呢? 个人认为这块之所以这么写,有下面几点好处:
  • 可以明了的标识配置信息的用途
  • 可以避免dom解析xml时因为特殊字符导致的解析错误发生
  • 在CI环境下配置多个环境,替换文件时可以避免转义字符书写的次数:
例如:使用maven的profile时如果在pom里配置的时候就需要转义特殊字符,那么如果不使用properties文件,则意味着正确的带有特殊字符的信息替换到Spring配置文件中需要两次转义。未免过于繁杂,也易疏忽。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇