javaScript 解析xml ,处理 “&”出现异常,再现高分求助!

zeq258 2010-10-25 05:01:43
只粘贴部分代码:

function callback() {

if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
clear(GlobalNextPara);
var pros = document.getElementById(GlobalNextPara);
//这步没有问题<nextParaValue>即使这里有&也可以正常打印</nextParaValue>
alert(xmlHttp.responseText);

//但是,有&的时候,这步得到的值就是0
var paravalue = xmlHttp.responseXML.getElementsByTagName("nextParaValue");

alert(" paravalue.length = " + paravalue.length);
...全文
147 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr-Jee 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zeq258 的回复:]

这个方法可以实现:但是代码必须为:
xml.replaceAll("&", "&amp;"); //amp后边的分号不能少

还有那些符号会有这样的影响呢,能给列举下吗,谢谢。

因为我发现我还有其他的页面有这样的问题,估计都是这样的特殊字符造成的,谢谢。
[/Quote]还有<>2个符号~
zeq258 2010-10-25
  • 打赏
  • 举报
回复
问题已经解决,结题:

<nextParaValue><![CDATA[ 即使这里有&也可以正常打印 ]]></nextParaValue>
最终使用这个方法解决。

那你在后台replace("&","&")
这个也指出了问题的所在,

谢谢各位!
zeq258 2010-10-25
  • 打赏
  • 举报
回复
这个方法可以实现:但是代码必须为:
xml.replaceAll("&", "&"); //amp后边的分号不能少

还有那些符号会有这样的影响呢,能给列举下吗,谢谢。

因为我发现我还有其他的页面有这样的问题,估计都是这样的特殊字符造成的,谢谢。
Crazywa 2010-10-25
  • 打赏
  • 举报
回复
<nextParaValue><![CDATA[ 即使这里有&也可以正常打印 ]]></nextParaValue>
就可以了。
Mr-Jee 2010-10-25
  • 打赏
  • 举报
回复
那你在后台replace("&","&")
Mr-Jee 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zeq258 的回复:]

返回值是从数据库读出来的,要用这些值去作为下拉列表的值。
如果过滤这些符号,会导致 页面下拉列表和 后台数据库不一致,,

这个方法不行呀。

还有其他方法吗,谢谢。
[/Quote]
你responseText
然后替换&为&就可以了(解析出来是一样的)
然后load为xml
zeq258 2010-10-25
  • 打赏
  • 举报
回复
xmlHttp.responseXML的时候出现问题了呗。
你alert(xmlHttp.reponseText)是可以的
可能是你后台的xml数据流有问题
比如没有设置Response.ContentType=("text/xml;charset=UTF-8");这个
比如格式有问题。。。
----------------------------
我测试过,纯英文字符测试。只有两个返回值。
<response>
<nextParaValue>
AAABBB
</nextParaValue>
<nextParaValue>
CCCDDD
</nextParaValue>
</response>
这样是没有问题的。

但是如果出现&符号,则就会出现异常。
<response>
<nextParaValue>
AAABBB
</nextParaValue>
<nextParaValue>
CCC&DDD
</nextParaValue>
</response>
zeq258 2010-10-25
  • 打赏
  • 举报
回复
返回值是从数据库读出来的,要用这些值去作为下拉列表的值。
如果过滤这些符号,会导致 页面下拉列表和 后台数据库不一致,,

这个方法不行呀。

还有其他方法吗,谢谢。
Mr-Jee 2010-10-25
  • 打赏
  • 举报
回复
xmlHttp.responseXML的时候出现问题了呗。
你alert(xmlHttp.reponseText)是可以的
可能是你后台的xml数据流有问题
比如没有设置Response.ContentType=("text/xml;charset=UTF-8");这个
比如格式有问题。。。
shaoliang520xi 2010-10-25
  • 打赏
  • 举报
回复
是特殊字符,把它过滤掉!

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧