从XML文件解析的数据呈现%22%表示“和%27%表示'...如何修复此问题?

时间:2011-08-26 07:21:00

标签: javascript xml

我正在解析XML文件中的数据,并且XML的字符'编码为%27%,字符“为%22%。这些字符在我的HTML中呈现,所以我最终得到这样的数据:

  

派克%27%s峰值

  

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

我试图执行string.replace(),但无济于事。在使用javascript解析XML时,我是一个新手。我确定我的代码已经过时了,但这就是我发布此任务的原因......任何人都可以帮助我吗?这是我尝试的string.replace()的代码:

function xmlencode(string) {
return string.replace(/'%27'/g,'\'').replace(/'%22'/g,'\"');

}

非常感谢您的反馈。

谢谢, 卡洛斯

1 个答案:

答案 0 :(得分:0)

这是一些专有编码,通常在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%"));