static void testReadXml(Args _args) { str sourceXMLFile, sNumber, sName; XmlDocument xmlDocument; XmlNodeList nodeList, childNodeList; XmlNode node; XmlElement element; XMLNodeListIterator xmlNodeListIterator; Counter counter; int i, j; ; sourceXMLFile = @"<Message><School id='203'> <Student> <Number>001</Number> <Name>Stud_A</Name> <Relation> <Id>1</Id> </Relation> </Student> <Student> <Number>002</Number> <Name>Stud_B</Name> <Relation> <Id>2</Id> </Relation> </Student> <Student> <Number>003</Number> <Name>Stud_C</Name> <Relation> <Id>3</Id> </Relation> </Student> </School></Message>"; xmlDocument = XmlDocument::newXml(sourceXMLFile); // single node node = xmlDocument.selectSingleNode('Message//School'); element = xmlDocument.selectSingleNode('Message//School'); // attribute info(element.getAttribute('id')); // list iteration #1 nodeList = xmlDocument.selectNodes('//School//Student'); xmlNodeListIterator = new xmlNodeListIterator(nodeList); while(xmlNodeListIterator.moreValues()) { counter++; node = xmlNodeListIterator.value(); sNumber = node.selectSingleNode('Number').text(); sName = node.selectSingleNode('Name').text(); info(strFmt("Record %1: Number - %2, Name - %3", counter, sNumber, sName)); xmlNodeListIterator.nextValue(); } // list iteration #2 nodeList = xmlDocument.selectNodes('Message//School//Student'); for (i = 0; i < nodeList.length(); i++) { childNodeList = nodeList.item(i).childNodes(); for (j = 0; j < childNodeList.length() ; j++) { node = childNodeList.item(j); if (node.baseName() == 'Relation') { info(node.innerXml()); break; } } } }
DaxOnline.org is free platform that allows you to quickly store and reuse snippets, notes, articles related to Dynamics AX.
Authors are allowed to set their own AdSense units and "buy me a coffee" link.
Join us.