Javascript 如何用jquery清理xml文件,即用html实体替换非法字符

Javascript 如何用jquery清理xml文件,即用html实体替换非法字符,javascript,jquery,xml,html-entities,Javascript,Jquery,Xml,Html Entities,我有一个jquery get命令,它获取xml文件的内容。不幸的是,我正在阅读的一些xml文件中有未替换的特殊字符(例如“&”) 最初,我在$.get中使用了数据类型:“xml”选项,这是因为未替换的字符使xml非法。因此,我想我应该使用数据类型:“text”,然后在success块中,在使用$.parseXML将文本转换为正确的xml对象之前,先对其进行清理 有人知道这样做的方法吗 <?xml version='1.0' encoding='utf-8' ?> <data&g

我有一个jquery get命令,它获取xml文件的内容。不幸的是,我正在阅读的一些xml文件中有未替换的特殊字符(例如“&”)

最初,我在$.get中使用了
数据类型:“xml”
选项,这是因为未替换的字符使xml非法。因此,我想我应该使用
数据类型:“text”
,然后在
success
块中,在使用
$.parseXML
将文本转换为正确的xml对象之前,先对其进行清理

有人知道这样做的方法吗

<?xml version='1.0' encoding='utf-8' ?> <data> <title>Games & Vocal Warm-Ups</data>
游戏与声乐热身
然后把它转到

<?xml version='1.0' encoding='utf-8' ?> <data> <title>Games &amp; Vocal Warm-Ups</data>
Games&;声乐热身
或者,是否有另一种解析xml的方法,可以原谅或自动处理未经扫描的实体


谢谢,Max不知道使用JavaScript快速解决问题的方法,但是有一个很好的工具可以解决这个问题:

从手册中:

有时,XML文件是由编写糟糕的软件或 粗心的程序员将包含像<和&这样的单独字符。这些 将导致XML解析器拒绝XML文件。他们一定是 替换为实体<和&。使用PowerGREP,我们可以 通过搜索和使用两个常规的 表情

因此,在JS代码中使用XML文件之前,可以在服务器中的XML文件上运行它

更新:

现在看,这都是关于正则表达式的,所以您可以使用JavaScript的
replace
函数来实现它,只需在这里跟踪手动链接并将其投影到您的JavaScript代码上


下面是一个替换任何
没有机会通知源代码错误并修复错误的示例?+1从长远来看,唯一的答案是纠正提供格式不正确的材料的服务-从技术上讲,它不是XML,所有其他解析器也会拒绝接触它。通过“修复”
&
来掩盖问题是的,我可以通过修改文件系统上的xml文件来修复它。但是有很多,我想知道我是否可以在客户端同时处理它。我同意在源代码处修复它们是理想的,但严格来说,这并不是我所要求的。我确实最终在源代码处修复了9000个有问题的xml文件,这大约需要3天的工作。感谢PowerGrep链接。对于像我这样的程序员来说,滚动我自己的解决方案(就像你开始做的那样)总是很有诱惑力,但我宁愿使用库。不,我希望在回答这个问题时会出现一个库:)你可以等待或编写自己的库来处理它-请参阅我提供的链接中的代码和其他正则表达式。
yourXmlString.replace( new RegExp("<(?![_:a-z][-._:a-z0-9]*\b[^<>]*>)") ,"gm"), "&lt;");