javascript - xml对象中的特殊字符问题

标签 javascript xml ajax

其实我只是一个XML初学者。 在我的一项任务中,我正在执行以下操作:

var req = new XMLHttpRequest(); 
req.open('GET', 'http://www.mohin.com/test.xml', false);
req.send();  
var xmlObj = req.responseXML;

现在,我得到的 XML 是:

<?xml version="1.0" encoding="utf-8"?>
 <Items status="as">
    <Song title="Helios (Original Mix)">
       <Artist name="Chris Hingher" ID="291728"></Artist>
       <Info StartTime="19:37:39" JazlerID="2219" PlayListerID="" />
    </Song>
    <Song title="I Was Drunk">
       <Artist name="Riva Starr Feat. N�ze" ID="292052"></Artist>
       <Info StartTime="19:45:38" JazlerID="2267" PlayListerID="" />
    </Song>
    .............
 </Items>

您可以看到第二个标签的标签名称属性中有一个特殊字符,因此我遇到了解析错误,因此我无法读取 XML 对象。看到这个标签:<Artist name="Riva Starr Feat. N�ze" ID="292052"></Artist>并查看它的名称属性。

有没有人可以给我解决这个问题的方法? 我真的需要像这样检索每个艺术家的名字:

var info = xmlObj.getElementsByTagName("Song")[0];
var artistName = info.childNodes[j].attributes.getNamedItem('name').nodeValue;

谢谢 莫欣

最佳答案

看起来用于保存 XML 文档的编码不是 XML prolog 中指定的编码 (encoding="utf-8")。如果 XML 文件由愚蠢的编辑器手动编辑和保存,就会发生这种情况。

假设您可以更改 XML 文档,将 encoding 属性从“utf-8”修改为“iso-8859-1”。如果可行,那么您应该更加注意编码XML 文档。

关于javascript - xml对象中的特殊字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3790247/

相关文章:

javascript - 不接受一系列点(.) 的正则表达式

xml - 如何在 XML 属性中保存换行符?

python - 在 Odoo 11 中通过 Python 修改的电子邮件模板中是否会忽略翻译?

javascript - 向 Node 发送 ajax get 请求,响应未定义

javascript - 从 div 中获取数据并将其写入文本文件

javascript - jQuery - 排序后更新可排序列表

javascript - 尝试从 Firefox 扩展将文本写入文件时 NS_ERROR_UNEXPECTED

javascript - 如何在我的代码所在的 js 文件之外查找具有 getElementById 的元素?

Java,从XMPP服务器响应字符串到XML文档

ajax - CORS - 如何在 Apache 的 httpd.conf 中忽略 OPTIONS 预检请求的身份验证?