Проблема специальных символов в объекте xml - PullRequest
1 голос
/ 24 сентября 2010

На самом деле я всего лишь начинающий 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>

Вы можете видеть, что в тегах есть специальный символАтрибут name во втором теге, и для этого я получаю ошибку синтаксического анализа, и для этого я не могу прочитать объект XML.Посмотрите этот тег: <Artist name="Riva Starr Feat. N�ze" ID="292052"></Artist> и посмотрите на его атрибут name.

Кто-нибудь может дать мне решение этой проблемы?Мне действительно нужно получить имя каждого художника следующим образом:

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

Спасибо, Мохин

Ответы [ 3 ]

3 голосов
/ 24 сентября 2010

Похоже, кодировка, использованная для сохранения документа XML, не была указана в прологе XML (encoding = "utf-8"). Это может произойти, если XML-файл редактируется и сохраняется вручную тупым редактором.

Предполагая, что вы можете изменить XML-документ, измените атрибут encoding с «utf-8» на «iso-8859-1». Если он работает, вам следует быть более осторожным при кодировании ваших XML-документов.

1 голос
/ 24 сентября 2010

Когда вы создаете файл XML, сохраните его с помощью UTF-8, а также просто подтвердите, что он сохранен с использованием UTF-8.

0 голосов
/ 24 сентября 2010

Вы проверили формат кодирования вашего XML-файла? Может прийти оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...