Javascript 在未扫描的XML中解析unicode
我试图解析一些格式不好的XML 我说格式不好——因为每个人都知道XML文件中不应该有未转义的符号 问题是,我需要从XML文件中收集一些unicode格式的短语。我需要的格式是尽可能接近原始。您可以在控制台日志中复制此问题Javascript 在未扫描的XML中解析unicode,javascript,jquery,xml,unicode,Javascript,Jquery,Xml,Unicode,我试图解析一些格式不好的XML 我说格式不好——因为每个人都知道XML文件中不应该有未转义的符号 问题是,我需要从XML文件中收集一些unicode格式的短语。我需要的格式是尽可能接近原始。您可以在控制台日志中复制此问题 console.log($("<test>â</test>").text()) // Outputs 'â' instead of desired 'â' console.log($(“â;”).text()
console.log($("<test>â</test>").text())
// Outputs 'â' instead of desired 'â'
console.log($(“â;”).text())
//输出为&–而不是所需的â;'
我尝试了escape
,unescape()
,encodeURI()
,decodeURI()
的每一种组合,我都能理解
我已经尝试了jQuery的ajax({processData:bool})
标志的两种设置。我找到的所有答案都指向这些解决方案——而且似乎它们都不起作用
如何修改上述代码以输出原始XML内容?使用新选项(yourUnescapedXml).innerHTML
。所以直接回答你的问题,
console.log($(`<test>${new Option('â').innerHTML}</test>`).text())
console.log($(`${new Option('â;').innerHTML}`).text())
这将创建一个,然后立即获取它的(转义的)innerHtml。不知道它是如何工作的-但我不能对结果提出异议!谢谢你,伙计!(编辑:在接受答案之前需要再等6分钟——但如果有人发帖,我会选择这个。这是最直接的答案)我已经更新了答案来解释它是如何工作的。如果您想接受此答案,请将其标记为“已接受”。再次感谢您提供的更多信息。本可以更早地标记出来,但从提问到选择答案有10分钟的冷却时间。可能的副本不是。这不是一个通用的转义/取消转义问题,而是unicode特有的问题。如果你想打旗子,至少读一下问题。谢谢,我看了问题。只是误解了。下次试着用一些xml示例代码和javascript代码以恰当的方式解释您的问题,这些代码解释了您如何尝试读出这些短语。你的标题有误:你不想解析它。您希望从xml中检索它,而不需要使用unicode字符进行自动交换。这是不一样的。在您的示例中,将所有
&
替换为&代码>。您不需要创建HTMLNodes的开销:console.log($('+'和#xE2;'.replace('&','&;'))+'.text())