Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 231
  • Last Modified:

Rebuild XML data

Hi,

I am reading a XML file into Flash.

Creating Arrays from the Data.

Then, I am modifying these arrays.

And then, I want to recreate the XML again which will be sent to a server side script to update the origional XML on the server.

Can anyone suggest how to i do this? I dont know how to recreate the XML after the Arrays have been modified.
Any suggestion is welcome.

thanks.
0
ssdesign
Asked:
ssdesign
  • 3
  • 2
1 Solution
 
negatyveCommented:
ok, follow me:

• create a new xml file, named "test.xml"
• write inside it:

<?xml version="1.0" encoding="UTF-8" ?>
<data>
      <item>10</item>
      <item>45</item>
      <item>12</item>
      <item>34</item>
</data>

• create a flash movie in the same folder
• test this code:

data_xml = new XML();
data_xml.ignoreWhite = true;
data_xml.onLoad = function(success)
{
      if(success){
            // edit xml file
            editXML(this);
      } else {
            // xml file missing
            trace("XML FILE NOT FOUND");
      }
};
function editXML(xml)
{
      // show source xml file in the output windo
      trace(xml);
      // create an empty array
      var temp_array = new Array();
      // select the items node sequence in the xml file
      var nodes = xml.firstChild.childNodes;
      for(var i = 0; i < nodes.length; i++){
            // push inside the array the numeric value of each item
            temp_array.push(Number(nodes[i].firstChild.nodeValue));
      }
      // show in the output window the filled array
      trace(temp_array);
      // add a value to each element (modify)
      for(var i = 0; i < temp_array.length; i++){
            temp_array[i] = temp_array[i] * 2;
      }
      // show in the output window the modified array
      trace(temp_array);
      // create the new xml
      var new_xml = new XML('<?xml version="1.0" encoding="UTF-8" ?><data></data>');
      // add nodes
      for(var i = 0; i < temp_array.length; i++){
            // create the node
            var new_node = new_xml.createElement("item");
            // append inside it the corresponding array element as text
            new_node.appendChild(new_xml.createTextNode(temp_array[i]));
            // insert it in the new xml
            new_xml.firstChild.appendChild(new_node)
      }
      // trace the new xml
      trace(new_xml)
}
data_xml.load("test.xml");
0
 
ssdesignAuthor Commented:
ok thats looks quiet ok, i will need to try it.

I will get back soon with my feedback wether it worked or not.

Just need to try it with my application.
0
 
negatyveCommented:
That's ok, take your time.. :)
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
ssdesignAuthor Commented:
I have not forgotten, give me just one more day. Ok?
0
 
negatyveCommented:
>I have not forgotten, give me just one more day. Ok?

hehe, that's right, no worries...
0
 
subhailcCommented:
i know this is closed and all but that was a great answer.  to the original poster: feel lucky :D  information like that can be (is) expensive and rare.
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

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