Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   """ вместо кавычек (http://www.flasher.ru/forum/showthread.php?t=99251)

humble david 01.08.2007 00:34

""" вместо кавычек
 
Здравствуйте!
Проблема такого характера. Получаю с сервера хмл, одним из нодов, которого в свою очередь тоже является хмл. И вот, этот вложенный хмл, состоит из последовательностей """ вместо ковычек и т.д.
Что можно сделать?

etc 01.08.2007 00:35

Пример XML, пожалуйста.

humble david 01.08.2007 00:50

[откоцано 4 КБ XML]

нод <level_data> по идее хмл еще один

etc 01.08.2007 01:17

О боже, что мешало прицепить в архиве, а?
CDATA в помощь.

Usnul 01.08.2007 02:04

в целях экономии места, я бы использовал какую-нибудь более краткую и удобную комбинацию, а вообще не понимаю о чем идет речь.

CorC 01.08.2007 10:01

А в чем проблема с &quot;? ведь во флеше оно верно отобразится, как надо.

humble david 01.08.2007 11:52

Вложений: 1
Проблема в том, что сиомволы "'", "<", ">" вложенного хмля разбиваются на подобные последовательности и с передаваемым xml не представляется возможным работать.
CDATA я использую, для передачи информации на сервер. Но получаю я уже такие последовательности. Как мне из них хмл собрать опять?

humble david 01.08.2007 12:46

Спрошу по-другому.
Что мне надо сделать, чтобы вот этот код возвращал XML, с которым можно работать?
Код:

var leveltxt = "&lt;objects name=&quot;myName &quot; &gt;&lt;object name=&quot;rino&quot; type=&quot;single&quot; /&gt;&lt;object name=&quot;tree4&quot; type=&quot;tree&quot; x=&quot;320&quot; y=&quot;197.4&quot; N=&quot;40&quot; id=&quot;tree4&quot; isBorder=&quot;true&quot;/&gt;&lt;/objects&gt;";
levelData = new XML();
levelData.parseXML(leveltxt);


etc 01.08.2007 12:48

Нужно на самом сервере сделать так, чтобы он такой XML больше не выдавал.

humble david 01.08.2007 12:51

понял. а флеш-клиент ниче все-таки не может сделать? кроме, скажем, диких функций, которые все эти дела найдут и заменят на нормальные символы...

etc 01.08.2007 13:03

Может, но это неправильно с точки зрения организации.

humble david 01.08.2007 13:22

вообще, в базу, из которой этот хмл сервер берет и дает мне, я же его и кладу (то есть сам вложенный хмл). Кладу его используя <![CDATA[...]]>. Но может здесь какая-то ошибка есть?

etc 01.08.2007 13:23

Тега CDATA в приведенном XML нет.

humble david 01.08.2007 13:40

а почему он там должен быть? сервер же считывает сами данные в этом теге и кладет в базу, потом эти данные возращает...

etc 01.08.2007 13:44

Сервер должен выдавать XML без всяких &lt; и &gt; и иже с ними и точка.

humble david 01.08.2007 14:16

проблема не решена

etc 01.08.2007 14:22

Ну так решайте проблему на сервере, а не клиенте, говорят же.

Kikasso 01.08.2007 14:25

http://www.php.net/manual/en/functio...ity-decode.php

humble david 02.08.2007 01:14

Вот решение проблемы:
при передачи данных на сервер, используется примерно такая схема:
Код:

str = "<level_data><![CDATA[" + escape(level_data.toString()) + "]]></level_data>";
при получении же:
Код:

       
socket.onXML = function(doc) {
 var e = doc.firstChild;               
 var leveltxt = e.toString();
 leveltxt = unescape(leveltxt);
 levelData = new XML();
 levelData.parseXML(leveltxt)
}


etc 02.08.2007 10:06

О боже… :wacko:
Что в лоб, что по лбу. Не должен флеш так делать! Он посылает нормальный XML, сервер его должен получить и нормально выдавать!
level_data — XML чистой воды. Зачем его escape-тить, запихивать черт знает куда (в CDATA) и отправлять в таком кастрированном виде? Что помешало отправить level_data как есть? Почему нельзя заставить нормально работать сервер? На данный момент приведенное решение является кривым до невозможности, мало того, что сервер криво обрабатывает XML, так ещё и флеш занимается какой-то дурацкой конвертацией и перемешиванием XML из-за кривости сервера…


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

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