Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从XML文件解析的数据为“0”呈现%22%;和';的%27%;。。。我该如何解决这个问题?_Javascript_Xml - Fatal编程技术网

Javascript 从XML文件解析的数据为“0”呈现%22%;和';的%27%;。。。我该如何解决这个问题?

Javascript 从XML文件解析的数据为“0”呈现%22%;和';的%27%;。。。我该如何解决这个问题?,javascript,xml,Javascript,Xml,我正在分析XML文件中的数据,XML中的字符“编码为%27%”,字符“编码为%22%”。这些字符在我的HTML中呈现,因此我得到如下数据: 派克%27%s峰值 或 这是我的%22%报价%22% 我试图执行string.replace(),但没有任何效果。在使用javascript解析XML方面,我是一个新手。我确信我的代码有点不对劲,但这就是我发布此任务的原因……有人能帮我吗?以下是我尝试的string.replace()的代码: } 非常感谢您的反馈 谢谢, Carlos这是一些专有编码,在X

我正在分析XML文件中的数据,XML中的字符“编码为%27%”,字符“编码为%22%”。这些字符在我的HTML中呈现,因此我得到如下数据:

派克%27%s峰值

这是我的%22%报价%22%

我试图执行string.replace(),但没有任何效果。在使用javascript解析XML方面,我是一个新手。我确信我的代码有点不对劲,但这就是我发布此任务的原因……有人能帮我吗?以下是我尝试的string.replace()的代码:

}

非常感谢您的反馈

谢谢,
Carlos

这是一些专有编码,在XML文件中通常不使用这种编码。因此,没有标准的解码方法

函数中有一些额外的撇号使其无法工作:

function decode(string) {
  return string.replace(/%27%/g,"'").replace(/%22%/g,'"');
}
您可以解析百分比符号之间的十六进制代码,以获得适用于任何此类实体的函数:

function decode(string) {
  return string.replace(/%[\da-f]{2}%/gi,function(m) {
    return String.fromCharCode(parseInt(m.substr(1,2), 16));
  });
}
例如:

alert(decode("%49%%74%%20%%77%%6f%%72%%6b%%73%%21%"));

谢谢你的快速反应,Guffa,我又花了一个不眠之夜试图弄明白这一点。我试过你的密码,它破译了警告信息,“它工作了!“…太棒了,你真是个天才。另一方面,我仍然不知道如何让你的代码来修复来自xml文档的数据。有没有办法让你的代码片段在xml呈现到页面之前扫描它?@Carlos:最简单的方法是在将字符串解析为xml文档之前对其进行解码,否则你需要循环thr通过文档中的节点并解码每个值。听起来这比我的工资级别高……我对通过childNodes循环肯定不太了解。我从远程服务器提取xml,所以我不确定在解析之前是否能够解码。非常感谢您的反馈。我感谢您的时间和考虑。@Carlos:也许吧你应该调查XML的来源,找出它为什么以如此奇怪的方式编码。好的,Guffa。再次感谢。顺便说一句,很好的姓…我的姓很相似,减去一个“s”。
alert(decode("%49%%74%%20%%77%%6f%%72%%6b%%73%%21%"));