Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.11.2010, 14:54
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Проверка XML на валидность
(new DOMParser()).parseFromString(xml, "text/xml")
При невалидном содержимом xml вместо того чтобы бросать исключение или возвращать специальное значение (null или undefined, например) возвращает дерево содержащее описание ошибки.
Как эту ситуацию можно исправить?
Ответить с цитированием
  #2 (permalink)  
Старый 13.11.2010, 18:47
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

var xmlDocument = (new DOMParser()).parseFromString("<invalid>", "text/xml");
if (xmlDocument.childNodes[0].namespaceURI == "http://www.mozilla.org/newlayout/xml/parsererror.xml") alert("Ошибка разбора XML")
Ответить с цитированием
  #3 (permalink)  
Старый 13.11.2010, 19:13
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Сообщение от subzey
"http://www.mozilla.org/newlayout/xml/parsererror.xml"
Не уверен что это будет кросбраузерно. И вдруг кому-то понадобится обработать XML с описанием ошибки.
Есть более универсальный способ?
Ответить с цитированием
  #4 (permalink)  
Старый 13.11.2010, 20:13
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Google: XML валидатор
результатов много
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2010, 00:14
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Сообщение от Vulkan Посмотреть сообщение
Google: XML валидатор
результатов много
А толку с них?
Ответить с цитированием
  #6 (permalink)  
Старый 14.11.2010, 08:07
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Сообщение от SV0L0CH Посмотреть сообщение
А толку с них?
Ну уверен что Вам нужно сможете подобрать.
Ответить с цитированием
  #7 (permalink)  
Старый 14.11.2010, 10:30
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

SV0L0CH,
Вас смутила мозилла в строке неймспейса?
Это всего лишь токен, описывающий схему xml, к движку браузера он никакого отношения не имеет (под той же оперой работает).
Точно так же, браузеры, кроме амайи, никакого отношения к w3.org не имеют, хотя этот адрес и встречается в доктайпе.

На крайний случай, если эта строка вдруг будет другой, проверить, какой именно, ничего не стоит.
Ответить с цитированием
  #8 (permalink)  
Старый 14.11.2010, 15:38
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Сообщение от subzey
На крайний случай, если эта строка вдруг будет другой, проверить, какой именно, ничего не стоит.
В хроме совсем другой формат ошибки
alert((new XMLSerializer).serializeToString((new DOMParser()).parseFromString("<invalid>", "text/xml")));​

Вообще, раз браузер выдаёт ошибку то целесообразно было бы проверять её наличие через браузерное API. Должен же быть какой-нибудь способ
Ответить с цитированием
  #9 (permalink)  
Старый 14.11.2010, 17:51
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

var xml = (new DOMParser()).parseFromString("<invalid>", "text/xml");
if(xml && xml.documentElement && xml.documentElement.tagName != 'parsererror'){
  alert('Ok.');
} else {
  alert('Fuck.');
}

Последний раз редактировалось B~Vladi, 14.11.2010 в 17:55.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с парсингом XML Verhal Общие вопросы Javascript 2 12.06.2010 22:25
Как удалить из памяти весь XML документ? EisBerg Events/DOM/Window 1 03.04.2010 14:45
Изменение текста в XML (не удаленный, но править нельзя) Qwe2Qwe Общие вопросы Javascript 3 28.02.2010 12:44
Взаимодействие пользовательской формы с БД XML Hag1989 Работа 8 16.02.2010 18:09
Не получается загрузить xml из php Alekson jQuery 2 08.07.2009 09:33