Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Правильность XML (http://www.flasher.ru/forum/showthread.php?t=132604)

_SoWa 16.11.2009 14:00

Правильность XML
 
Всем привет! У меня такой вопрос: как можно отучить флеш валидировать XML?
Пример, есть XML файл с такими нодами:
Цитата:

<add_point xy="133,190,lep" text="Верхотурье">
<P>1. <STRONG>Реконструкция сетей Свердловэнерго 10-0,4 кВ в том числе "Гостевой маршрут"<BR></STRONG><EM>&nbsp;г. Верхотурье.</EM><BR><BR></P>
</add_point>
Вот HTML код внутри генерируется не мной(и даже не я писал механизмы генерации). И в этом коде есть тег <BR>, который не закрыт.

Флеш получает эту ноду, использует аттрибуты тега add_point, а затем мне надо получить внутреннее содержимое- т.е. ХТМЛ код. Точнее его надо положить в myTExtField.htmlText
Я это делаю с помощью
Код AS3:

function add_point(tempXML:XML, parentObj:MovieClip):MovieClip {
trace(tempXML.toString()); //или toXMLString, ошибка одна и та же
...
}

Для начала я пытаюсь вывести эту информацию с помощью trace
Но флеш дает ошибку:
Цитата:

TypeError: Error #1085: The element type "BR" must be terminated by the matching end-tag "</BR>".
Как можно отучить его проверять валидность содержимого, или как можно по другому достать содержимое тега, если в нем есть такие вот незакрытые теги..

SamFR 16.11.2009 14:07

<![CDATA[ ... ]]>

gloomyBrain 16.11.2009 14:08

Загрузите с помощью URLLoader, найдите и исправьте ошибку, а потом сделайте из имеемой строки XML

SamFR 16.11.2009 14:14

Нет, тут у человека проблема в том, что он хочет хранить в xml текст, включающий зарезервированные символы (тот же самый html). В данном случае нужно именно использовать тэг CDATA:
Код:

<add_point xy="133,190,lep" text="Верхотурье">
<![CDATA[<P>1. <STRONG>Реконструкция сетей Свердловэнерго 10-0,4 кВ в том числе "Гостевой маршрут"<BR></STRONG><EM>&nbsp;г. Верхотурье.</EM><BR><BR></P>]]>
</add_point>

Всё, что будет заключено в этот тег, будет интерпретироваться как текст, и, естественно, не будет подвергаться валидации и парсингу.

_SoWa 16.11.2009 14:19

Цитата:

Сообщение от SamFR (Сообщение 865894)
Всё, что будет заключено в этот тег, будет интерпретироваться как текст, и, естественно, не будет подвергаться валидации и парсингу.

Да, именно так! Спасибо большое!!!

gloomyBrain 16.11.2009 14:21

Мне кажется, что если бы человек мог редактировать скрипт, выдающий ему XML, то вопросов бы не должно было возникнуть

SamFR 16.11.2009 14:27

Цитата:

Сообщение от gloomyBrain (Сообщение 865897)
Мне кажется, что если бы человек мог редактировать скрипт, выдающий ему XML, то вопросов бы не должно было возникнуть

Если так, то дело обстоит проще: человеку просто нужно оторвать руки тому, кто писал скрипт. Шучу :)

_SoWa 16.11.2009 14:27

XML выдается хитрой связкой C#+ASP+шаблонный язык.
Лезть в тот код мне крайне неохота без огромной надобности, ибо его еще понять надо- что автор имел ввиду когда писал его...

SamFR 16.11.2009 14:34

То есть обернуть html в CDATA в скрипте никак не получится?
Тогда могу посоветовать только одно: если известно, в каких тэгах хранятся html-данные, то после загрузки файла, до преобразования его в XML, обороачивать содержимое этих тэгов тем же CDATA. А потом уже преобразовывать в XML.

_SoWa 16.11.2009 14:42

Цитата:

Сообщение от SamFR (Сообщение 865902)
То есть обернуть html в CDATA в скрипте никак не получится?
Тогда могу посоветовать только одно: если известно, в каких тэгах хранятся html-данные, то после загрузки файла, до преобразования его в XML, обороачивать содержимое этих тэгов тем же CDATA. А потом уже преобразовывать в XML.

Нет нет, как раз это я и сделал малой кровью без вмешательства в серверную часть С#+ASP. В шаблонизаторе поправил, и все хорошо работает :)


Часовой пояс GMT +4, время: 13:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.