• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 991
  • Last Modified:

Retrieving XML Node Values and Node Names using Actionscript

I've got an XML file that I'm retrieving using Flash Remoting. That part is working fine, but in the function that I run once I get the data, I'd like to take the node names and the node values and place them both in an array to use later in the program. I'm having a difficult time retrieving the node value. I've attached a simplified version of my code so you can see what I'm doing and where the problem is occuring.

Thanks for any help - I'm stumped.
function gotConfig(re:ResultEvent) {
   var vConfigXML = re.result;
   var tempconfig_xml:XML = new XML(vConfigXML);
   tempconfig_xml.ignoreWhite = true;
   trace("tempconfig_xml: " + tempconfig_xml);
   //result
   /* <?xml version="1.0" encoding="UTF-8"?>
<config><bkgimage>images/bkg_browsevideo.jpg</bkgimage><headerimage>images/header.png</headerimage></config> */
 
   var config_xml:XML = tempconfig_xml.childNodes[1].childNodes;
   trace("config_xml: " + config_xml);
   // result
   /* config_xml: <bkgimage>images/bkg_browsevideo.jpg</bkgimage>,<headerimage>images/header.png</headerimage> */
   var var1 = tempconfig_xml.childNodes[1].childNodes[1].nodeName;
   var var2 = tempconfig_xml.childNodes[1].childNodes[1].nodeValue;
   var var3 = tempconfig_xml.childNodes[1].childNodes[1]
   trace("var1: " + var1); // var1: bkgimage
   trace("var2: " + var1); // var2: bkgimage -- I need it to be images/bkg_browsevideo.jpg
   trace("var3: " + var3); 
   //<bkgimage>images/bkg_browsevideo.jpg</bkgimage>
   stop();
}

Open in new window

0
katyjack
Asked:
katyjack
1 Solution
 
driscolltmCommented:
two issues:

first you're tracing out var1 where you want to see var2:
trace("var2: " + var1);
needs to be
trace("var2: " + var2);

second, the text value within a node is actually a child node itself so:

var var2 = tempconfig_xml.childNodes[1].childNodes[1].nodeValue;
needs to be
var var2 = tempconfig_xml.childNodes[1].childNodes[1].childNodes[0].nodeValue;
   
0
 
katyjackAuthor Commented:
That's absolutely correct - thanks very much. I'm not sure you'll see this or if there's a place for you to answer and I suppose I'm trying to get a freebie in here, but you're answer made me curious about one more thing - why would "var config_xml:XML = tempconfig_xml.childNodes[1].childNodes;" work, but "var config_xml:XML = tempconfig_xml.firstChild.childNodes;" throw a type mismatch error? I would think they would mean the same thing. At any rate - thanks very much for your help.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now