CLEAR
* Load .NET wrappers
PUBLIC NET as NETWrapper of HOME(7) + "NETClasses\NETBase.prg")
NET = newOBJECT("NETWrapper", HOME(7) + "NETClasses\NETBase.prg")
NET.Using("System")
NET.Using("System.Xml")
NET.Using("System.Xml.Schema")
*Make an XML file, so we can load it
SET SAFETY off
USE HOME(2) + "Northwind\Customers"
CURSORTOXML(ALIAS(), "myXMLFile.xml", 1, 512, 5, "1")
LOCAL XMLDoc as NETSystemXml_XmlDocument OF HOME(7) + "NETClasses\NETSystemXml.prg"
XMLDoc = NET.New("NETSystemXml_XmlDocument")
XMLDoc.load3("myXMLFile.xml")
ShowMe(XMLDoc.get_ChildNodes(), 0)
*Recursively displays each ChildNode
PROCEDURE ShowMe(XMLNodeList as Variant, depth as Integer)
LOCAL i as Integer
LOCAL XMLNode as NETSystemXml_XmlNode
XMLNode = NET.Declare("NETSystemXml_XmlNode")
FOR EACH item IN XMLNodeList
XMLNode.setobject(item)
strVal = XMLNode.get_value()
strVal = IIF (ISNULL(strVal), "", strVal)
? REPLICATE(" ", depth)
?? XMLNode.get_name() + " : " + strVal
ShowMe(XMLNode.get_ChildNodes(), depth + 1)
ENDFOR
ENDPROC