写了个request2XML的方法,每当数据中有'<'、'&'符号时,封装的XML就无法解析。发现了XML里的CDATA属性,问题迎刃而解!在XML文档中的所有文本都会被解析器解析。 只有在CDATA部件之内的文本会被解析器忽略。----------------------------------------------------- 解析数据 XML 解析器通常情况下会处理XML文档中的所有文本。 当XML元素被解析的时候,XML元素内部的文本也会被解析: This text is also parsed XML解析器这样做的原因是XML元素内部可能还包含了别的元素,象下面的例子,name元素内部包含了first和last两个元素: BillGates 解析器会认为上面的代码是这样的: Bill Gates ----------------------------------------------------- 转义字符不合法的XML字符必须被替换为相应的实体。 如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该象下面那样书写代码: if salary < 1000 then 为了避免出现这种情况,必须将字符"<" 转换成实体,象下面这样: if salary < 1000 then 下面是五个在XML文档中预定义好的实体: < < 小于号 > > 大于号 & & 和 ' ' 单引号 " " 双引号 实体必须以符号"&"开头,以符号";"结尾。 注意: 只有"<" 字符和"&"字符对于XML来说是严格禁止使用的。剩下的都是合法的,为了减少出错,使用实体是一个好习惯。----------------------------------------------------- CDATA部件在CDATA内部的所有内容都会被解析器忽略。如果文本包含了很多的"<"字符和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。一个 CDATA 部件以"

在前面的例子中,所有在CDATA部件之间的文本都会被解析器忽略。 CDATA注意事项: CDATA部件之间不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,将很有可能出错哦。同样要注意在字符串"]]>"之间没有空格或者换行符。

转自:http://blog.csdn.net/lihualiu81/archive/2011/03/08/6231177.aspx

Approval Setting时特殊字符的问题:

如果Approver_Role输入了“<br>”,那么在申请表单时什么出错,因为在组合XML字符串时遇到了<。需要转义。

ServiceForFlowER.cs

 approvalXML += "<Approver>"

                             + "<Approver_ID>" + GetEmpID(approverTable.Rows[i][entityApprover.Approver.PhysicalFieldName].ToString()) + "</Approver_ID>"

                             + "<Sequence_No>" + approverTable.Rows[i][entityApprover.ApprovalOrder.PhysicalFieldName].ToString() + "</Sequence_No>"

                             + "<Approver_Role>" + approverTable.Rows[i][entityApprover.Role.PhysicalFieldName].ToString() + "</Approver_Role>"

                             + "</Approver>";

PS:

不合法的XML字符必须被替换为相应的实体。

如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该象下面那样书写代码:

<message>if salary < 1000 then</message>

为了避免出现这种情况,必须将字符"<" 转换成实体,象下面这样:

<message>if salary &lt; 1000 then</message>

下面是五个在XML文档中预定义好的实体:

&lt;

<

小于号

&gt;

>

大于号

&amp;

&

&apos;

'

单引号

&quot;

"

双引号

实体必须以符号"&"开头,以符号";"结尾。 注意: 只有"<" 字符和"&"字符对于XML来说是严格禁止使用的。剩下的都是合法的,为了减少出错,使用实体是一个好习惯。

转载于:https://www.cnblogs.com/yelongsan/p/7640946.html

xml 需要转义相关推荐

  1. Mybatis 大于、小于、等于在XML中转义

    mybatis 中 SQL 写在mapper.xml文件中,而xml解析 < .>.<=.>= 时会出错,这时应该使用转义写法. 方式一 < <= > > ...

  2. java xml特殊字符转义_Java中将xml文件转化为json遇到特殊字符会报错!

    前言: 我们在项目开发中,有时候调用别人提供的接口,接收到的数据是xml,这时候为了方便后续开发中的使用,需要解析xml并把数据转化成json,今天这篇文章就讲解下如何把xml转化成json,并在这个 ...

  3. java xml转义方法以及中文字符的处理

    对于xml的转义最方便,最简单的方法就是直接使用apache的commons.lang jar包中的StringEscapeUtils的escapeXml方法.但该方法在commons lang 2. ...

  4. android将字符串中间几个字用*代替,【Android技巧之相见恨晚系列】-TextView/string.xml冷门小技巧:占位转换符%1$s、%1$d等的用法...

    技巧比较冷门,我今天用到才了解到,以前都没接触过...然而却发现这是很早就已经有的技巧... 引子: 如果一段文字需要多段TextView拼接而成,比如:"我叫XXX,今年XX岁了,身高X. ...

  5. Java转义工具类StringEscapeUtils的学习笔记

    Java转义工具类StringEscapeUtils的学习笔记 前言 ​ 在java.commons.lang3 的包中有许多方便好用的工具类,类似于处理字符串的StringUtils,处理日期的Da ...

  6. java中xml的组装与解析(十分钟学会)

    xml的组装与解析(十分钟学会) 一.xml的解析 话不多说直接上代码 1.引入pom依赖 // 解析xml <dependency><groupId>org.jsoup< ...

  7. 【MyBatis】MyBatis对Log4J的支持、MyBatis实现新增、删除、修改、查询

    准备:数据库数据 people表 people表数据 eclipse项目结构 一.注解 注解存在的意义:简化xml 文件的开发. 注解在servlet 3.0 规范之后大力推广的. 注解前面的@XXX ...

  8. 通过简单的Spring方面摆脱null参数

    什么是世界上最令人讨厌的,同时也是最受欢迎的例外? 我敢打赌这是NullPointerException. NullPointerException可以表示任何东西,从简单的" ups,我认 ...

  9. parameterType 属性、typeAliases 别名

    五 parameterType 属性 在 XXXMapper.xml 中等标签的 parameterType 可以 控制参数类型 SqlSession 的 selectList()和 selectOn ...

最新文章

  1. 李嘉骐:03 PyTorch模块与基础实战
  2. log4j与commons-logging slf4j的关系
  3. gulp几个常见问题及解决方案
  4. easyui datagrid 每行数据添加 按钮
  5. 与老外交谈的常用句子
  6. VTK:图片之CombineImages
  7. 学习笔记(47):Python实战编程-pack布局
  8. C#使用SQLite数据库的代码示例
  9. 微信公众帐号开发教程第11篇-符号表情的发送(上)
  10. 正则表达式中/i,/g,/ig,/gi,/m的区别和含义
  11. linux cron 服务,Linux定时任务Crontab详解(推荐)
  12. unity5 人皮渲染 Skin Shading
  13. 【UVA10256】The Great Divide(凸包相离判定)
  14. 大学计算机基础流媒体,大学计算机基础经典课件.ppt
  15. 基于51单片机的铂电阻PT100温度计proteus仿真
  16. TODA EMS(设备管理系统)简介
  17. 怎么选择触摸液晶广告机?
  18. virtualBox上Ubuntu的网络设置(万能方法)
  19. 【数据结构】栈的实现(C语言)
  20. CV深度学习项目调试开发过程中报错记录【持续更新】

热门文章

  1. HTML DOM简介
  2. 【Spring】—— 自动装配
  3. 【机器学习实战】第14章 利用SVD简化数据
  4. 使用scanf()函数接收带空格的字符串
  5. 软件工程师的职业生涯
  6. jQuery.validate使用必备
  7. Oracle Redo 并行机制
  8. C#开发C/S结构如何通信的问题?
  9. 【Java学习】多线程2
  10. Layabox 常用操作