Показать сообщение отдельно
Старый 26.04.2009, 15:17
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код AS3:
function addChapterAt(xml:XML, name:String, pos:int, attrib:Object = null):XML
{
	if (!isXMLName(name)) return <error/>;
	var insertNode:XML = <{name} {attribsToString(attrib)}/>;
	if (!xml.*.length()) return xml.appendChild(insertNode);
	pos = pos < 0 ? 0 : pos;
	pos = pos > xml.*.length() - 1 ? xml.*.length() : pos;
	xml.insertChildBefore(xml.*[pos], insertNode);
	return xml;
}
 
function attribsToString(obj:Object = null):String
{
	var ret:String = "";
	if (obj === null) return ret;
	if (obj is XML) 
	{
		for each(var node:XML in obj.@*)
		{
			ret += node.name() + "=\"" + node.toXMLString() + "\" ";
		}
		return ret;
	}
	for (var p:String in obj)
	{
		ret += p + "=\"" + obj[p] + "\" ";
	}
	return ret;
}
var foo:XML = <foo/>;
 
trace(addChapterAt(foo, "chapter", 100, { bar: "1234" }).toXMLString());
trace(addChapterAt(foo, "chapter", -50, <bar bar="4321"/>).toXMLString());
trace(addChapterAt(foo, "chapter", 1).toXMLString());
trace(addChapterAt(foo, "@", 0, <bar bar="4321"/>).toXMLString());
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 26.04.2009 в 15:20.