2012-06-09 3 views
0

Я столкнулся с ошибкой Javascript при анализе XML-файла. Мой код выглядит следующим образом:Неограниченное регулярное выражение Литеральная ошибка

var det = eval("(" + xmlhttp.responseText + ")"); 

возвращаемого файл XML для этого кода будет:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><accountss><accounts>`<password>1234</password><userid>arjel</userid></accounts></accountss> 

У меня есть незавершенная регулярное выражение буквального сообщения об ошибке при выполнении этого кода. В чем может быть проблема ?

ответ

4

Вы пытаетесь разобрать XML, используя старый, медленный, опасный фрагмент кода, предназначенный для анализа JSON, оценив его как JavaScript. В отличие от JSON, XML не является подмножеством JavaScript, поэтому при попытке сделать это ошибки.

Просто доступ xmlhttp.responseXML напрямую.

0

Вам не нужно eval(). Eval попытается «выполнить» ваш xml, объединенный с двумя скобками, как javascript, но по очевидным причинам он потерпит неудачу (а не код javascript - не сможет его выполнить).

Если вы просто хотите, чтобы сцепить свой XML с круглыми скобками сделать это без Eval(): [? Почему Eval в JavaScript нуждается в скобках для Eval данных JSON]

var det = "(" + xmlhttp.responseText + ")"; 
+0

Престол (http://stackoverflow.com/questions/964397/why-do-javascripts-eval-need-roundhes-to-eval-json-data) для получения подробной информации о шаблоне, используемом в вопросе. Кажется очень маловероятным, что цель состоит в том, чтобы связать строку XML с круглыми скобками. – Quentin

Смежные вопросы