Hi there,
A bit stuck here with the firstchild and childnodes
here’s the xml
<website>
<page id="1">
<pageTitle>
page title 1 </pageTitle>
<pageContent>
page content 1
</pageContent>
<pageQuote />
</page>
<page id="2">
<pageTitle>
page title 2
</pageTitle>
<pageContent>
page content 2
<pageQuote>Hello world</pageQuote>
</page>
<footerContent>Copyright
</footerContent>
<menu>
<menuItem gotoURL="/index">Who</menuItem>
<menuItem gotoURL="/index">Portfolio</menuItem>
</menu>
</website>
now so far i have this function loadWebsiteContent
function loadWebsiteContent(loaded) {
if (loaded) {
var pagesNode = this.firstChild.childNodes;
trace("Pages: "+pagesNode.length);
for (var i = 0; i<pagesNode.length; i++) {
var tempWebsiteContent:Object = new Object();
pageItems = pagesNode*;
if (pageItems.nodeName == 'page'){
tempWebsiteContent.pageNr = pageItems.attributes.id;
tempWebsiteContent.pageTitle = pageItems.childNodes[0].firstChild.nodeValue;
tempWebsiteContent.pageContent = pageItems.childNodes[1].firstChild.nodeValue;
tempWebsiteContent.pageQuote = pageItems.childNodes[2].firstChild.nodeValue;
websiteContent.push(tempWebsiteContent);
} //.end page node
if (pageItems.nodeName == 'footerContent') {
contentWeb.footer_mc.footer.text = pageItems.firstChild.nodeValue;
} //.end footerContent
if (pageItems.nodeName == 'menu') {
var numOfMenuItems:Number = pagesNode*.childNodes.length;
menuItems = pagesNode*.childNodes;
for(var j:Number = 0; j < numOfMenuItems; j++) {
var tempMenu:Object = new Object();
tempMenu.gotoURL = menuItems.attributes.gotoURL;
tempMenu.menuItem = menuItems.childNodes[0].firstChild.nodeValue;
menu.push(tempMenu);
trace("Url attr: "+tempMenu.gotoURL);
}
}
}
trace("Test: "+websiteContent[2].pageTitle);
trace("Menu items: "+menu[2].menuItem);
trace("--------------------------------------");
} else {
content = "file not loaded!";
}
}
Children give me a headache,
Any tips how to loop thru the pages nodes (pages) and menu nodes (menuItems)