PDA

Просмотр полной версии : xml и CDATA


Azy
16.01.2007, 15:45
XML прибивает тег CDATA например
xml:xml = new XML("<xml><node label='New Item'><![CDATA[asdfasdf]]></node></xml>");
trace(xml.toString);
выводит
<xml><node label='New Item'>asdfasdf</node></xml>
Что не есть гуд, так как на сервер надо отправлять кучу всяки символов которые должны быть в CDATA, либо заэскейпены.
Поискав в инете наткнулся на Тип узла Номер типа узла
ELEMENT_NODE 1
ATTRIBUTE_NODE 2
TEXT_NODE 3
CDATA_SECTION_NODE 4
...
При разборе XML-документа Flash либо приводит узлы к первому или третьему типу (как, например, это происходит с секцией CDATA), либо помещает в соответствующие объекты (как, например, атрибуты или объявление DOCTYPE).
Т.е. CDATA идет лесом. Хм. непорядок.
Еще один вариант нашел здесь
http://www.kirupa.com/web/xml/XMLspecificIssues5.htm
Но почему то он не пашет.

В итоге решил вместо <![CDATA[текст]]> писать [![CDATA[текст]]] а на сервере заменять, но чувствую что это не есть гуд. Кто-нибудь сталкивался с такой проблемой и если да что делал.

Kikasso
16.01.2007, 16:34
А как вы пытались это использовать? Должно по идее пахать.
Только надо для этого ручками маркировать ноды как цдату, затем вызывать format, получать строку и отправлять ее через LoadVars..
Оно вам надо?

iNils
16.01.2007, 16:39
Программно создать CDATA на AS1/AS2 в XML нельзя. Только как описал Kikasso.

Azy
16.01.2007, 16:40
А что нынче вручную эскейпить интереснее? CDATA отличное решение. Вот и хотелось бы узнать как его заставить работать...

Kikasso
16.01.2007, 18:55
Так вы же ссылку привели - там и мануал есть.
Заставить работать - никак, можно только эмулировать.
Там и эмулируется.

Ведьмак
09.07.2007, 14:39
А можно чуть подробнее о прелестях CDATA ?

etc
09.07.2007, 14:44
В поиске есть.