XML文档的格式要求比较严格,当有特殊字符时需要转义处理如使用
- XML code
<description> - <![CDATA[ <h3>表达式输出(编码)</h3> <ul> <li>出现在XML文档的文本节点中,输出表达式值,并编码其xml特殊字符。</li> <li>这个输出是自动编码的,若需要原始文本输出,需要使用:<c:out value="${html}"/>标签。 </li> <li>模版表达式求值,是一个基于模板上下文数据的读值和简单只读运算的过程。 </li> <li>在JavaScript?中。其功能类似于function(el){with(context){return eval(el)})</li> </ul> ]]> </description>
但是当一个节点有个属性,而这个属性的值中又包含特殊字符该怎么办呢,比如一个节点如下
- XML code
<page url="http://aa.com/aa.jsp?xx=value&yy=value"></page>
这时解析器就会说这个不规范,那上面这个url的值应该如何编码才通得过呢?
------解决方案--------------------
如果是url 则通过urlencode 来实现.
把特殊字符转码后使用.
------解决方案--------------------
进行XmlEncode编码,比如写成
<page url="http://aa.com/aa.jsp?xx=value&yy=value"></page>
------解决方案--------------------
在CDATA段中,只有当出现<![CDATA[这个字符的时候才需要转义成<![CDATA[,其他都可以正常处理的,所以&号在CDATA段中可以正常通过的,否则用CDATA段还有什么意义