jquery set xml cdata - PullRequest
       8

jquery set xml cdata

2 голосов
/ 22 ноября 2010

У меня проблема с установкой узла cdata с помощью jquery. Получение cdata легко сделать с помощью функции .text (), но если я использую .text ('jquery> handy'), это не создаст узел cdata.

Это моя процедура: Я получаю данные формы в XML для загрузки в форме как то так:

<formdata>
  <field id="title"><![CDATA[Some title]]></field>
  <field id="description"><![CDATA[Some description]]></field>
</formdata>

Я использую узлы cdata, потому что поле может содержать все виды специальных символов. Затем я загружаю данные в форму, получая содержимое узла с помощью .text ()

Если пользователь отправляет форму, я обновляю xml и преобразую ее в строку, чтобы опубликовать ее на сервере. Я знаю, что мог бы просто опубликовать поля, но у меня есть несколько веских причин, чтобы поместить их в документ XML. Все работает очень хорошо, но нет, если пользователь вводит какие-то специальные символы. Вот как я устанавливаю значение узла (в этом примере «узел описания»)

domdoc.find('field[id="description"]').text($("#description").val());

Таким образом, узел был cdata, но функция .text () удаляет его. Я ало пробовал это:

domdoc.find('field[id="description"]').text('<![CDATA[' + $("#description").val() + ']]>');

Это также не работает, потому что .text () изменяется <на & gt; </p>

у кого-нибудь есть решение? Мое вдохновение ушло .....

Спасибо, Simon

Ответы [ 2 ]

3 голосов
/ 28 сентября 2011

Простое решение. Создайте узел раздела CData и добавьте его в свой XML. Я боролся с JQuery .text () без удачи. Это сработало фантастически.

            var cDataSection = self.xmlDocument.createCDATASection(text);
            $(element).empty();
            $(element).append(cDataSection);
0 голосов
/ 22 ноября 2010

Просто установите текст без добавления <![CDATA[.CDATA - это только один из способов избежать текста в XML, но, поскольку jQuery ускользает от вас, вам не нужно использовать другой метод.&lt; так же хорошо, как <![CDATA[<]]>.Для приложений XML они идентичны.

...