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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.06.2009, 23:57
vvvvvvf вне форума Посмотреть профиль Отправить личное сообщение для vvvvvvf Найти все сообщения от vvvvvvf
  № 1  
Ответить с цитированием
vvvvvvf
[+1 08.07.09]

Регистрация: Mar 2009
Сообщений: 107
Question XML как убрать вывод самого тега

Доброго времени суток.
Работаю с данными XML и столкнулся с такой проблемой
например есть такой код XML (подгружаю с сервера)

Код:
<?xml version="1.0"?>
<response>
	<userListName>Добро пожаловать <b>Вася</b>!</userListName>
</response>
Как теперь вывести все содержимое в тегах userListName?

Пробовал такие спсобы:

Код AS3:
//... Код загрузки с сервера опустил
			vars = new XML(myLoader.data);
			trace('userListName1:'+vars.child('userListName'));
			trace('userListName2:'+vars.userListName);
			trace('userListName3:'+vars.userListName.toString());
			trace('userListName4:'+vars.userListName.text());
Первый, второй и третий способ выводит "<userListName>Добро пожаловать <b>Вася</b>!</userListName>", то есть вместе с тегоми <userListName> и </userListName>

а четвертый "<userListName>Добро пожаловать !</userListName>", то есть без содержимого в тегах b, то есть <b>Вася</b>.


Вопрос: Как можно вывсести содержимое в тегах userListName без самих тегов, то есть такой вариант "Добро пожаловать <b>Вася</b>!"?

Старый 21.06.2009, 00:27
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
можно из vars.userListName.* собирать нужную строку
а лучше в CDATA упаковать это хозяйство
Код AS3:
<response>
	<userListName><![CDATA[Добро пожаловать <b>Вася</b>!]]></userListName>
</response>;


Последний раз редактировалось silin; 21.06.2009 в 00:30.
Старый 21.06.2009, 00:34
vvvvvvf вне форума Посмотреть профиль Отправить личное сообщение для vvvvvvf Найти все сообщения от vvvvvvf
  № 3  
Ответить с цитированием
vvvvvvf
[+1 08.07.09]

Регистрация: Mar 2009
Сообщений: 107
а без CDATA как то можно?

Старый 21.06.2009, 00:35
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 4  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
ну как вариант, возможно плохой... пользоваться XMLDocument

Старый 21.06.2009, 01:09
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>а без CDATA как то можно?

Код AS3:
trace( vars.userListName.* );

Старый 21.06.2009, 03:24
vvvvvvf вне форума Посмотреть профиль Отправить личное сообщение для vvvvvvf Найти все сообщения от vvvvvvf
  № 6  
Ответить с цитированием
vvvvvvf
[+1 08.07.09]

Регистрация: Mar 2009
Сообщений: 107
А есть какой-нибудь универсальный код который прогоняет через цикл все переменные и заменяет их на полные строки то есть что вроде этого "vars.userListName = vars.userListName.*"


Пробовал сделать так, но что-то не получается =((
Код AS3:
			for (var i:int = 0; i < vars.*.length(); i++) {
				vars.*[i] = vars.*[i].*;
			}
Что-то я там видимо не так делаю, потому что после прогона через цикл переменная vars.userListName стает пустой


Последний раз редактировалось vvvvvvf; 21.06.2009 в 03:26.
Старый 21.06.2009, 14:04
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 7  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
можно персобрать в другой xml
Код AS3:
var xml:XML =<response/>
for (var i:int = 0; i < vars.*.length(); i++) 
{
	var str:String = vars.*[i].*;
	var node:XML = <node/>;
	node.userListName = str;
	xml.appendChild(node);
}
но все равно криво, что-то надо делать с потерей пробелов, лишними (или не лишними) переводами строк и т.д.
проще сразу обернуть в cdata
Код AS3:
var str:String =  myLoader.data;
str = str.replace(/<userListName>/g, "<userListName><![CDATA[");
str = str.replace(/<\/userListName>/g, "]]></userListName>");
vars = new XML(str);

Старый 21.06.2009, 14:58
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код AS3:
var xml:XML =
<response>
	<userListName>Добро пожаловать <b>Вася   </b></userListName>
	<foo>Добро                    пожаловать <b>Вася</b></foo>
	<bar>Добро пожаловать <b>        Вася</b></bar>
</response>;
xml.*.(setChildren(XML("<![CDATA[" + 
		children().toXMLString().replace(/(\r|\n|\t|(\s\s+))+/g, " ") + 
		"]]>")));
 
trace(xml.toXMLString());
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 21.06.2009 в 15:05.
Старый 23.06.2009, 17:49
vvvvvvf вне форума Посмотреть профиль Отправить личное сообщение для vvvvvvf Найти все сообщения от vvvvvvf
  № 9  
Ответить с цитированием
vvvvvvf
[+1 08.07.09]

Регистрация: Mar 2009
Сообщений: 107
Огромное спасибо заработало так как я и хотел =))

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

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

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


 


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


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