Вопрос

Это довольно простая проблема, но я не могу найти решение.Я записываю некоторый xml в скрытый div на этой странице и читаю его позже.Проблема в том, что некоторые кавычки удаляются при записи в div, и из-за этого я не могу загрузить использовать xml в IE, используя loadXML

это XML-файл

<parameters id='XXX'>
<product_id value='YYY'/>
<report_id value='ZZZ'/>
<list>
    <filter_id value='AAA'/>
</list>
<date_begin value='BBB'/>
<date_end value='CCC'/>
<timeframe_id value='DDD'/>
<chart_id value='EEE'/>

Я использовал много разных методов, но, похоже, ни один из них не работает, я пытаюсь использовать JQUERY как можно чаще, чтобы предотвратить кроссбраузерные проблемы, но подойдет любое решение.

Я добавляю xml в строковую переменную paramString выше, используя

var parametersDiv = "<div id='" + reportDivId + "_params' style='visibility: hidden; display: none'>" + paramString + "</div>";

и все проходит нормально.

однако, когда я пытаюсь извлечь его, кавычки вокруг XXX удаляются в IE.Таким образом, я не могу загрузить его с помощью loadXML().Я мог бы взломать решение, но я хотел бы сделать это правильно.

Любые решения были бы полезны, я уже потратил на это почти день.

Спасибо

Джей Ди

Это было полезно?

Решение

Попробуйте использовать двойные кавычки и посмотрим, сработает ли это.

Если нет, другим решением вашей проблемы может быть получение XML через XMLHttpRequest (Ajax).

jQuery.ajax({
  url: 'yourUrlThatReturnsXML',
  dataType: 'xml',
  success: function (data, textStatus) {
   $(data); // Your XML
  }
});

Другие советы

Как вы вставляете эти скрытые разделы на страницу?Предположительно, вы используете innerHTML (учитывая, что у вас есть строка), но это означает, что она передается через HTML-анализатор IE.Это превратит его в (недопустимый) HTML, и когда вы попытаетесь извлечь его, вы увидите описанный вами эффект отсутствия кавычек на атрибутах (и, возможно, другие побочные эффекты, с которыми вы, оказывается, не сталкивались...пока).

Лучше всего сохранить ссылку на возвращаемый XML-документ (а не его строковую сериализацию) в переменной.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top