Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.07.2011, 15:43
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 21  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Оба случая true.
Тю, а обертка где?

Код AS3:
var xml:XML = XML("<result>" + resStr+ "</result>");
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 29.07.2011, 15:44
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 22  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от mikhailk Посмотреть сообщение
Известен, но это уже валидация после парсинга, тут вопросов нет.
Валидация до парсинга это и будет парсинг. Другими словами вы хотите написать свой new XML("...") что ли?

Старый 29.07.2011, 15:46
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 23  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Еще вариант регэкспы заюзать. Правда я их не умею.

http://gskinner.com/RegExr/ тут есть какие-то примеры комьюнити.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 29.07.2011, 15:46
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 24  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
В общем текущих методов вполне достаточно для определения того, что пришло в виду отсутствия конкретного свойства класса XML.
__________________
Кодинг, багинг, алгоритминг. me @

Старый 29.07.2011, 15:46
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 25  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
В общем, пока получается только действительно через children, но для случая, когда xml имеет два уровня (не меньше)

Код AS3:
 
var inputStr:String = "123";		
var inputStr2:String = "<node><item>123</item></node>";			
 
var inputXML:XML = XML(inputStr);
var inputXML2:XML = XML(inputStr2);
trace(inputXML.children().length(),inputXML2.children().length());  // 0 1
Добавлено через 1 минуту
Цитата:
Валидация до парсинга это и будет парсинг. Другими словами вы хотите написать свой new XML("...") что ли?
нет
хотелось бы иметь функцию isXML(str:String):Boolean

Старый 29.07.2011, 15:50
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 26  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
Просто XML такой формат, что в методе isXML в принципе нет никакой необходимости. Смогли дерево получить - чудно, не смогли - значит мусор в респонзе.
__________________
Кодинг, багинг, алгоритминг. me @

Старый 29.07.2011, 16:07
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 27  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Просто XML такой формат, что в методе isXML в принципе нет никакой необходимости. Смогли дерево получить - чудно, не смогли - значит мусор в респонзе.
Вопрос архитектуры.
У меня например, есть класс-коннектор, обеспечивающий соединение с сервером, который по полученным параметрам формирует запрос на сервер, получает от него ответ, формирует из него xml и отправляет наверх потребителю. Невалидные xml отсекались, соответственно, коннектором в момент формирования xml. Валидные - проходили наверх. А вот текст, приходящий периодически от сервера, тоже признавался валидным xml-ем и проходил наверх, соответственно, надо было ставить обработку там. Теперь у меня коннектор режет и эти ответы сервера тоже. Мне удобно.

Старый 29.07.2011, 18:49
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 28  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Код AS3:
var inputStr:String = "123";		
var inputStr2:String = "<node>123</node>";			
 
var inputXML:XML = XML(inputStr);
var inputXML2:XML = XML(inputStr2);
trace(inputXML..*.length(),inputXML2..*.length());  // 0 1
Прррреступление ррраскрррыто )

Добавлено через 2 минуты
Правда с одной поправочкой - если узел единственный, то он не должен быть самозакрывающимся, т.е "<node attr='someValue'/>"

Старый 29.07.2011, 18:58
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 29  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Ну да
Получилось не в общем виде (хотелось, конечно в общем), но мне подойдет.
Валидный xml у меня всегда имеет чилдренов.

Старый 30.07.2011, 01:40
ProxyGreen вне форума Посмотреть профиль Отправить личное сообщение для ProxyGreen Найти все сообщения от ProxyGreen
  № 30  
Ответить с цитированием
ProxyGreen
 
Аватар для ProxyGreen

Регистрация: Jul 2011
Сообщений: 67
Мой вариант с регулярными выражениями:

Код AS3:
public function xmlDetection(str:String):Boolean {
			if (str.search(/<(\w+)>.*<\/\1>\s*$/) == -1) {
				return false;
			}
 
			return true;
		}
Результаты:
Код AS3:
	var inputStr:String = "123";		
            var inputStr2:String = "<node>123</node>";
 
			trace(xmlDetection(inputStr)); //false
			trace(xmlDetection(inputStr2)); //true

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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