webForumDet fria alternativet

XML insertBefore()

2 svar · 275 visningar · startad av rille31

rille31Medlem sedan okt. 2004186 inlägg
#1

Sitter och filar på ett litet flash/xml CMS och har lite strul med funktionen insertBefore()

Vill kunna lägga till en nod antingen i början eller slutet av xml trädet men får det inte att funka :(

Jag kan lägga in noden i början innan min rotnod <images> men kan inte lägga in noden innan min första <image> nod.

<images>
<image thumb="carneruds.jpg" />
<image thumb="slides.jpg" />
<image thumb="hollywood.jpg" />
</images>
function createNode():Void {
	var imageNode:XMLNode = myXML.firstChild.firstChild.cloneNode(true);
	imageNode.attributes.thumb = currPath+filename_txt.text;
	myXML.insertBefore(imageNode, myXML.firstChild.firstChild);
	trace(myXML);
}
mirandirMedlem sedan maj 2003750 inlägg
#2

Det knepiga med XML-objektet är att den även räknar whitespace som taggar. Så myXML.firstChild.firstChild kan vara en radbrytning, ett mellanslag eller vilket/vilka tecken som nu råkar ligga mellan <images> och första img-taggen. Så testa att sätta myXML.ignoreWhite = true; innan du laddar in eller skapar XML-en.

Dessutom så måste anropa "insertBefore" metoden på den nod som du vill lägga till en ny nod på.

myXML[b].firstchild[/b].insertBefore(imageNode, myXML.firstChild.firstChild);

/Mirandir

rille31Medlem sedan okt. 2004186 inlägg
#3

Tack Mirandir

Löste det med

myXML.firstChild.insertBefore(imageNode, myXML.firstChild.firstChild);
125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)