在CDATA内部的所有内容都会被解析器忽略。一个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记结束。但是CDATA是不能够嵌套的。

因CDATA嵌套导致的XML解析错误的问题,参考网上处理方式,解决这个问题只需要将"]]>"替换成"]]]]><![CDATA[>",替换后文本作为CDATA参数传入,将原CDATA识别为多个CDATA,自动连接后返回。

多层嵌套同理,即拆分为多段连接即可。

<![CDATA[

<Request>

<BankTradeInfo>

<![CDATA[

<Response><TradeCode>4200</TradeCode></Response>

]]>

</BankTradeInfo>

</Request>

]]> 

CDATA里面需要嵌套CDATA,查了一下资料,解决办法主要是将第二个CDATA里面的“]]>”替换为“]]]]><![CDATA[>”

即:

<![CDATA[

<Request>

<BankTradeInfo>

<![CDATA[

<Response><TradeCode>4200</TradeCode></Response>

]]]]><![CDATA[>

</BankTradeInfo>

</Request>

]]>

CDATA嵌套问题的更多相关文章

  1. XML简介与CDATA解释

    简介XML 是一种受到广泛支持的 Internet 标准,用于以一种特殊的方式编码结构化数据.实际上,以 XML 编码的数据可以通过任何编程语言解码,人们甚至可以使用标准的文本编辑器来阅读或编写 XM ...

  2. XML文件中CDATA的作用

    操作XML文件时,如果允许用户输入内容,例如∶"< ".">"."/".""等,当生成XML时,会破坏了XM ...

  3. CDATA为何物?

    CDATA的解释 1. 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data),XHTML也是如此. CDATA 部分中的所有内容都会被解析 ...

  4. XML CDATA节点

    术语CDATA指字符数据.CDATA定义为文本块,但识别为标记. 预定义实体的同位素;,密度,并且与放大器;需要打字并且通常难以阅读的标记.在这种情况下,CDATA部分都可以使用.通过使用CDATA节 ...

  5. PHP simplexml_load_string 过滤<![CDATA[XXXX]]>

    首先说说过滤<![CDATA[XXXX]]>干嘛用的. 这东西主要是防止XML里面嵌套HTML标签导致XML样式错乱的. 过滤很简单: $response = str_replace( a ...

  6. XML CDATA的作用

    操作XML文件时,如果允许用户输入内容,例如∶"< ".">"."/".""等,当生成XML时,会破坏了XM ...

  7. 关于<![CDATA[]]

    术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data). 在 XML 元素中,"<" 和 "&& ...

  8. JS Flex交互:html嵌套Flex(swf)

    一.html页面嵌套Flex需要用到 swfobject.js swfobject的使用是非常简单的,只需要包含 swfobject.js这个js文件,然后在DOM中插入一些简单的JS代码,就能嵌入F ...

  9. CDATA

    1DTD中的属性类型 全名:character data 在标记CDATA下,所有的标记.实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下: <![CDATA ...

随机推荐

  1. 20165226 2017-2018-4 《Java程序设计》第9周学习总结

    20165226 2017-2018-4 <Java程序设计>第9周学习总结 教材学习内容总结 第十二章 URL类 构造方法1 try { URL url = new URL(" ...

  2. 关于神经网络算法的 Python例程

    # Back-Propagation Neural Networks# # Written in Python.  See http://www.python.org/# Placed in the ...

  3. 【UVa】1601 The Morning after Halloween(双向bfs)

    题目 题目     分析 双向bfs,对着书打的,我还调了好久.     代码 #include<cstdio> #include<cstring> #include<c ...

  4. Android Study 玩转百度ocr身份证识别不是梦~

    前言 Today,由于昨晚喝蒙了,今天晕乎乎的为大家带来如何快速集入ocr身份证识别. 关于ocr的前世今生这里不做过多的说明,百度一抓一大把. 前期准备 百度AI开放平台ocr地址: https:/ ...

  5. redis改密码

    一. 如何初始化redis的密码? 总共2个步骤: a.在配置文件中有个参数: requirepass  这个就是配置redis访问密码的参数. 比如 requirepass test123 b.配置 ...

  6. OD 实验(十一) - 对一个程序的破解

    程序: 点击安装程序 这是一个拼图程序 点击 Options -> Flash Sizes 程序会提示是未注册版本 点击一些选项的时候会提示该程序只给注册的用户 点击 Register 随便输入 ...

  7. EasyUI介绍及常见问题

    JQuery Easy UI介绍 1.JQuery Easy UI环境搭建和调试: https://jingyan.baidu.com/article/67508eb4342f9f9cca1ce426 ...

  8. cocos2dx中快速完成一段可播放动画

    版本:cocos2dx 2.2.6 IDE: VS2012 语言:C++98 CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteF ...

  9. SVN更新或提交时出现冲突该如何解决

    解决版本冲突的命令.在冲突解决之后,需要使用svnresolved来告诉subversion冲突解决,这样才能提交更新.冲突发生时,subversion会在WorkCopy中保存所有的目标文件版本(上 ...

  10. mysql 挑选列导入

    insert into boleht_development.`htprojects`(id,pname,`general`,imgsrc,whatwedo,howwedo,bp) select ci ...