Проблема с CDATA> Описанным Leechy методом получаю на клиенте XML. > Пример узла: > <note subj="subj"> > <![CDATA[text of notes with <tag>tags</tag>]]> > </note> > > код JavaScript: > var note = doc.getElementsByName("note").item(0); > var text = note.firstChild; > > таким образом в note лежит сам узел, в text - CDATA > в ИЕ (с использованием activex) это действительно так, т.е. > note.nodeType = 1 (ELEMENT) > text.nodeType = 4 (CDATA) > > однако в Mozilla (1.1 в моем случаем) > text.nodeType = 3 (TEXT) > > соответственно, получить сдержимое CDATA не получается. > что скажет всезнающий ALL на эту проблему???
А зачем, собственно? Ведь, по сути дела, cdata - это квотинг для XML потока, и если мы отконвертировали данные во что угодно другое, что уже не является XML, в том числе DOM дерево - этот квотинг нам уже не нужен. А при конвертировании _В_ XML все равно надо руководствоваться не тем, квотили или нет это ранее, а тем, нужно ли это квотить реально. Я просто написал функцию, которая проверяет и квотит входную строку, если надо (заодно правильно обрабатывает наличие внутри строки уже имеющихся CDATA), и все входные данные для XML, если они из внешнего мира, всегда попадают внутрь только через нее. |