2009-10-07 152 views
0

我有一个XML文档,其中包含一些无效字符(例如)。 Unfortunalty我无法更改源XML文件,并且必须通过AJAX读取文件。我怎样才能逃避这些角色客户端?在AJAX中转义XML特殊字符

许多感谢,

史蒂夫

编辑:

$.ajax({ 
     type: "GET", 
     url: "http://foo.com", 


     dataType: "xml", 
     success: function(xml) { 
      $(xml).find('images').each(function(){ 
       $(this).find('pic').each(function() { 
        ...code... 
       }); 

      }); 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown){ 
      alert(textStatus); 
     } 

    }) 
+2

对于XML,“é”不是无效字符,也不需要转义。虽然取决于你的情况,它可能没有被正确编码。 – 2009-10-07 16:33:36

+0

其使用utf-8,并且IE在IE中导致分析错误,Safari – 2009-10-07 16:34:27

+0

服务器发送什么内容类型头?服务器上文件的实际编码是什么?有没有编码=“???”在XML文件的开头。如果你想避免问题,这三个必须匹配。 – 2009-10-07 16:38:01

回答

0

我诱使管理员sovled这一个我自己的正确格式的XML文件。一旦他们删除/修复了特殊字符,问题就解决了。

0

逃生()和UNESCAPE()不能对你的架构工作?

+0

在哪里可以在我发布的示例中加入这个 – 2009-10-07 16:44:14

+0

无处不在,在您的发布示例中。如果问题出在jquery执行期间(解析结果),那么你真的必须找出它失败的原因(因为é在xml中是完全有效的) – Filini 2009-10-09 16:16:34

0

也许你正在寻找下面的XML处理指令(PI):

<?xml version="1.0" encoding="ISO-8859-1"?>

编辑1:客户端解决方案:

你能读到的XML内容字符串?如果是,替代由以上和.loadXML()

EDIT 2现有PI:考虑这个链接Specifying the Data Type for AJAX Requests