RE: [Flashcoders] xml parsing problem
Can you provide some usage instructions (i.e. what the arguments n and r are for)? Jason Merrill Bank of America Learning & Organization Effectiveness - Technology Solutions >>-Original Message- >>From: [EMAIL PROTECTED] [mailto:flashcoders- >>[EMAIL PROTECTED] On Behalf Of Steven Sacks | BLITZ >>Sent: Friday, October 27, 2006 4:47 PM >>To: Flashcoders mailing list >>Subject: RE: [Flashcoders] xml parsing problem >> >>Or you could use XML2AS. >> >>// XML2AS - DO NOT AUTO FORMAT! >>_global.XML2AS = function(n, r) { >>var a, d, k; >>if (r[k=n.nodeName] == null) r = ((a=r[k]=[{}]))[d=0]; >>else r = (a=r[k])[d=r[k].push({})-1]; >>if (n.hasChildNodes()) { >>if ((k=n.firstChild.nodeType) == 1) { >>r.attributes = n.attributes; >>for (var i in k=n.childNodes) XML2AS(k[i], r); >>} else if (k == 3) { >>a[d] = new String(n.firstChild.nodeValue); >>a[d].attributes = n.attributes; >>} >>}else r.attributes = n.attributes; >>} >>___ >>Flashcoders@chattyfig.figleaf.com >>To change your subscription options or search the archive: >>http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >> >>Brought to you by Fig Leaf Software >>Premier Authorized Adobe Consulting and Training >>http://www.figleaf.com >>http://training.figleaf.com ___ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com
Re: [Flashcoders] xml parsing problem
Steven, It would be cool if you made a version of that that was mtasc compatible... Jim Kremens On 10/27/06, Steven Sacks | BLITZ <[EMAIL PROTECTED]> wrote: Or you could use XML2AS. // XML2AS - DO NOT AUTO FORMAT! _global.XML2AS = function(n, r) { var a, d, k; if (r[k=n.nodeName] == null) r = ((a=r[k]=[{}]))[d=0]; else r = (a=r[k])[d=r[k].push({})-1]; if (n.hasChildNodes()) { if ((k=n.firstChild.nodeType) == 1) { r.attributes = n.attributes; for (var i in k=n.childNodes) XML2AS(k[i], r); } else if (k == 3) { a[d] = new String(n.firstChild.nodeValue); a[d].attributes = n.attributes; } }else r.attributes = n.attributes; } ___ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com -- Jim Kremens ___ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com
RE: [Flashcoders] xml parsing problem
Or you could use XML2AS. // XML2AS - DO NOT AUTO FORMAT! _global.XML2AS = function(n, r) { var a, d, k; if (r[k=n.nodeName] == null) r = ((a=r[k]=[{}]))[d=0]; else r = (a=r[k])[d=r[k].push({})-1]; if (n.hasChildNodes()) { if ((k=n.firstChild.nodeType) == 1) { r.attributes = n.attributes; for (var i in k=n.childNodes) XML2AS(k[i], r); } else if (k == 3) { a[d] = new String(n.firstChild.nodeValue); a[d].attributes = n.attributes; } }else r.attributes = n.attributes; } ___ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com
RE: [Flashcoders] xml parsing problem
You might want to try using my XMLParser class. It translates the XML into ActionScript-friendly arrays/objects. http://www.greensock.com/ActionScript/XMLParser.zip Jack Doyle -Original Message- Date: Thu, 26 Oct 2006 22:13:50 -0400 From: "Bill Pelon" <[EMAIL PROTECTED]> Subject: [Flashcoders] xml parsing problem I'm having trouble grabbing the right value from a node any help would be awesome.. I can't figure out where to increment as I'm going through my loop for the sub items. node structure below sub item name goes here sub item URL goes here _self sub item name goes here # 2 sub item URL # 2 _self AS below onClipEvent(load){ function ExpandData(turbo){ var turboItem = turbo.firstChild.childNodes; var subItem = turbo.firstChild.firstChild.childNodes; trace("number of main section nodes" + turbo.firstChild.childNodes.length); // main section count for (var i = 0; i < turboItem.length; i++){ var turbo = turboItem[i]; // running through main nodes mainNavName = turbo.attributes.name; mainNavUrl = turbo.attributes.url; mainNavWindow = turbo.attributes.window; mainNavOn = turbo.attributes.open; // set to true or false trace("mainNaveName = " + mainNavName); trace("mainNaveURL = " + mainNavURL); trace("mainNaveWindow = " + mainNavWindow); trace("mainNaveOn = " + mainNavOn); if( turbo.childNodes.length >=1){ trace("this node has subcontent"); trace("number of subcontent nodes = "+ turbo.childNodes.length); turboChild = turbo.firstChild.firstChild; trace(" "); trace("total times to loop = " + turbo.childNodes.length); for (var n = 0; n < turbo.childNodes.length; n++){ trace("Subcounter incremental value = " + n); / THESE NEED TO BE INCRIMENTED trace(turboChild.firstChild.nodeValue); // returns sub item name trace(turboChild.nextSibling.firstChild.nodeValue); // returns sub item URL trace(turboChild.nextSibling.nextSibling.firstChild.nodeValue); // returns sub itemWindow } } trace(" "); } } var turbo = new XML(); turbo.ignoreWhite = true; turbo.onLoad = function(success){ if (success) ExpandData(this); else trace("Error loading XML file"); } turbo.load("netnav.xml"); // what my xml is called that is posted above stop(); } ___ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com
Re: [Flashcoders] xml parsing problem
Bill, Take a look at kirupa's XML guide here: http://www.kirupa.com/web/xml/XMLwayAround2.htm I also came across the same problem some time ago. I decided not to play with siblings because our xml schema (especially the order of the sibling nodes) couldn't be predictable. So I went to a custom parsing process based on the nodeName of each child node of my sibling nodes. Something like: var subItemObject:Object = {}; var subItemChildNodes:Array = subItemNode.childNodes; for (var i:Number = 0; i < subItemChildNodes.length; i++) { var attributeNode:XMLNode = subItemChildNodes[i]; var attrName:String = attributeNode.nodeName; var attrValue:String = attributeNode.firstChild.nodeValue; subItemObject[attrName] = attrValue; } Hope it helps, Julien Vignali Bill Pelon a écrit : I'm having trouble grabbing the right value from a node any help would be awesome.. I can't figure out where to increment as I'm going through my loop for the sub items. node structure below window="_self" open="true"> sub item name goes here sub item URL goes here _self sub item name goes here # 2 sub item URL # 2 _self open="false"> AS below onClipEvent(load){ function ExpandData(turbo){ var turboItem = turbo.firstChild.childNodes; var subItem = turbo.firstChild.firstChild.childNodes; trace("number of main section nodes" + turbo.firstChild.childNodes.length); // main section count for (var i = 0; i < turboItem.length; i++){ var turbo = turboItem[i]; // running through main nodes mainNavName = turbo.attributes.name; mainNavUrl = turbo.attributes.url; mainNavWindow = turbo.attributes.window; mainNavOn = turbo.attributes.open; // set to true or false trace("mainNaveName = " + mainNavName); trace("mainNaveURL = " + mainNavURL); trace("mainNaveWindow = " + mainNavWindow); trace("mainNaveOn = " + mainNavOn); if( turbo.childNodes.length >=1){ trace("this node has subcontent"); trace("number of subcontent nodes = "+ turbo.childNodes.length); turboChild = turbo.firstChild.firstChild; trace(" "); trace("total times to loop = " + turbo.childNodes.length); for (var n = 0; n < turbo.childNodes.length; n++){ trace("Subcounter incremental value = " + n); / THESE NEED TO BE INCRIMENTED trace(turboChild.firstChild.nodeValue); // returns sub item name trace(turboChild.nextSibling.firstChild.nodeValue); // returns sub item URL trace(turboChild.nextSibling.nextSibling.firstChild.nodeValue); // returns sub itemWindow } } trace(" "); } } var turbo = new XML(); turbo.ignoreWhite = true; turbo.onLoad = function(success){ if (success) ExpandData(this); else trace("Error loading XML file"); } turbo.load("netnav.xml"); // what my xml is called that is posted above stop(); } ___ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com ___ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com
[Flashcoders] xml parsing problem
I'm having trouble grabbing the right value from a node any help would be awesome.. I can't figure out where to increment as I'm going through my loop for the sub items. node structure below open="true"> sub item name goes here sub item URL goes here _self sub item name goes here # 2 sub item URL # 2 _self open="false"> AS below onClipEvent(load){ function ExpandData(turbo){ var turboItem = turbo.firstChild.childNodes; var subItem = turbo.firstChild.firstChild.childNodes; trace("number of main section nodes" + turbo.firstChild.childNodes.length); // main section count for (var i = 0; i < turboItem.length; i++){ var turbo = turboItem[i]; // running through main nodes mainNavName = turbo.attributes.name; mainNavUrl = turbo.attributes.url; mainNavWindow = turbo.attributes.window; mainNavOn = turbo.attributes.open; // set to true or false trace("mainNaveName = " + mainNavName); trace("mainNaveURL = " + mainNavURL); trace("mainNaveWindow = " + mainNavWindow); trace("mainNaveOn = " + mainNavOn); if( turbo.childNodes.length >=1){ trace("this node has subcontent"); trace("number of subcontent nodes = "+ turbo.childNodes.length); turboChild = turbo.firstChild.firstChild; trace(" "); trace("total times to loop = " + turbo.childNodes.length); for (var n = 0; n < turbo.childNodes.length; n++){ trace("Subcounter incremental value = " + n); / THESE NEED TO BE INCRIMENTED trace(turboChild.firstChild.nodeValue); // returns sub item name trace(turboChild.nextSibling.firstChild.nodeValue); // returns sub item URL trace(turboChild.nextSibling.nextSibling.firstChild.nodeValue); // returns sub itemWindow } } trace(" "); } } var turbo = new XML(); turbo.ignoreWhite = true; turbo.onLoad = function(success){ if (success) ExpandData(this); else trace("Error loading XML file"); } turbo.load("netnav.xml"); // what my xml is called that is posted above stop(); } ___ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com