写了个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来说是严格禁止使用的。剩下的都是合法的,为了减少出错,使用实体是一个好习惯。

xml特殊字符处理 如&的更多相关文章

  1. XML特殊字符处理

    XML共有5个特殊字符,分别为:&<>"' 如果XML文件中需要包含如上5个特殊字符,有两种方式: 1.将包含特殊字符的字符串放在<![CDATA[]]>中 ...

  2. XML 特殊字符处理和 CDATA

    在处理XML数据时,特殊字符要特殊处理,不能和节点字符混淆. 所有 XML 文档中的文本均会被解析器解析. 只有 CDATA 区段(CDATA section)中的文本会被解析器忽略. PCDATA ...

  3. 【转】XML 特殊字符处理

    from: http://gdutlzh.blog.163.com/blog/static/164746951201222934328455/ 1. 在XML文件中,如果内容包含一些特殊字符会导致XM ...

  4. XML 特殊字符处理

    在XML中,有一些符号作为XML 的标记符号,一些特定情况下,属性值必须带有这些特殊符号. 下面主要是讲解一些常用的特殊符号的处理 例一: 双引号的使用. 双引号作为XML 属性值的开始结束符号,因此 ...

  5. XML 特殊字符

    XML转义字符 以下为XML标志符的数字和字符串转义符 "     (" 或 ") '     (' 或 &apos;) &     (& 或 & ...

  6. XMl特殊字符转换参考

    参考链接:https://blog.csdn.net/goon_star/article/details/49636505 处理SVG Text元素不能正确显示特殊字符 特殊符号 命名实体 十进制编码 ...

  7. android xml特殊字符

    @ 对应 @ : 对应 :   对应 空格 对应 空格 ! 对应 ! " 对应 " # 对应 # $ 对应 $ % 对应 % & 对应 & ' 对应 ´ ( 对应 ...

  8. 处理内容有&特殊字符thinkphp返回xml无法解析的问题<![CDATA[xxx]]>

    处理内容有&特殊字符thinkphp返回xml无法解析的问题<![CDATA[xxx]]> // xml 转义特殊字符 如&'" <![CDATA[&quo ...

  9. XML标签

    SQL标签库提供了创建和操作XML文档的标签. 引入语法:<%@ taglib prefix="x" uri="http://java.sun.com/jsp/js ...

随机推荐

  1. Orz

    OR: 说实话,感觉Virtual Judge挺好使的,至少到现在,Uva都没注册成功过QAQ,估计是校园网的问题 不得不说现在课越来越多,而且对于我们这种学校ACM才开展两年的来说,时间真的好有限, ...

  2. bzoj3129[Sdoi2013]方程 exlucas+容斥原理

    3129: [Sdoi2013]方程 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 582  Solved: 338[Submit][Status][ ...

  3. SpringBoot 中 get/post 请求处理方式,以及requestboy为Json时的处理

    GET.POST方式提时, 根据request header Content-Type的值来判断: application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的 ...

  4. JVM常见问题(二)

    6. GC收集器有哪些?它们的特点是? 常见的GC收集器如下图所示,连线代表可搭配使用: 1.Serial收集器(串行收集器) 用于新生代的单线程收集器,收集时需要暂停所有工作线程(Stop the ...

  5. tree的遍历--广度优先遍历

    一.二叉树demo var tree = { value: '一', left: { value: '二', left: { value: '四', right: { value: '六' } } } ...

  6. Docker学习系列(三)Docker搭建gitlab的两种方式

    一.直接下载docker-ce 1.拉取gitlab/gitlab-ce Randy:~ Randy$ docker pull gitlab/gitlab-ce Using default tag: ...

  7. 转:rabbitmq——用户管理

    原文:http://my.oschina.net/hncscwc/blog/262246?p={{currentPage-1}} 安装最新版本的rabbitmq(3.3.1),并启用managemen ...

  8. CRM客户关系管理系统(七)

    第七章.动态modelform功能实现  7.1.动态modelform的实现 (1)给第一列添加一个a标签 kingadmintag.py (2)kingadmin/urls.py urlpatte ...

  9. springMVC源码分析--HandlerMethodReturnValueHandlerComposite返回值解析器集合(二)

    在上一篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)我们介绍了返回值解析器HandlerMethodReturnValueHand ...

  10. Bootstrap3 表格-紧缩表格

    通过添加 .table-condensed 类可以让表格更加紧凑,单元格中的内补(padding)均会减半. <table class="table table-condensed&q ...