Article: Q253732
Product(s): Microsoft FoxPro
Version(s): 2.5,2.6,3.0,6.0
Operating System(s): 
Keyword(s): kbMiscTools kbvfp600 kbXML kbGrpDSFox kbDSupport kbMSXML kbGrpDSMSXML
Last Modified: 06-DEC-2000
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual FoxPro for Windows, version 6.0 
- Microsoft XML, versions 2.5, 2.6, 3.0 
-------------------------------------------------------------------------------
SUMMARY
=======
This simple example shows how to return values from an XML document using
Microsoft Visual FoxPro.
MORE INFORMATION
================
This example uses the Microsoft XML (MSXML) parser to move data from an XML
document to a FoxPro table. The parser is available at:
  http://msdn.microsoft.com/xml/default.asp
The following code creates the Microsoft MSXML ActiveX object to accesses
information contained in an XML document and displays it:
1. Install the MSXML parser.
2. Create the XML document by copying the sample XML code below to a text file
  and name the file with the extension .
3. Create a FoxPro program file with the following code and run the program:
  PUBLIC oXML  
  oXML=CREATEOBJECT('msxml.domdocument')  && This creates the parser object
  oXML.LOAD(GETFILE('xml'))  && This gets and loads the XML document. 
  *** Select the XML document created from the XML code below.
  *** The following gives the basename / RootElemant of the XML document
  ? oXml.DocumentElement.Basename 
  *** The following gives the number of nodes (or records)           
  ? oXML.documentelement.childnodes.LENGTH  
  *** REMEMBER that the object model is in base zero.
  *** Therefore use the following in looping expressions  
  ? oXML.documentelement.childnodes.LENGTH - 1
  *** The following returns the number of child nodes contained under the first Item
  *** This is useful for looping through a childes elements
  *** FOR ichild = 0 TO oXML.documentelement.childnodes.ITEM(0).childnodes.LENGTH - 1
  ? oXML.documentelement.childnodes.ITEM(0).childnodes.LENGTH - 1
  *** The following returns the nodename of the childnode  
  ? oxml.documentelement.childnodes.item(0).childnodes(0).nodename
  *** The following returns the data contained in the childnode
  ? oXML.documentelement.childnodes.ITEM(0).childnodes(0).TEXT
  *** Returns a string of all the data contained in the second child / record
  ? oXml.documentelement.childnodes.item(1).nodetypedvalue
XML Code
--------
  <orders_table>
      <orders>
  	<order_id> 10040</order_id>
  	<cust_id>WHITC </cust_id>
  	<emp_id>     3</emp_id>
  	<to_name>White Clover Markets</to_name>
  	<to_address>1029 - 12th Ave. S.</to_address>
  	<to_city>Bellevue</to_city>
  	<to_region>WA</to_region>
  	<postalcode>98124</postalcode>
  	<to_country>USA</to_country>
  	<ship_count>USA</ship_count>
  	<ship_via>     3</ship_via>
  	<order_date>09/09/93</order_date>
  	<order_amt>$1,991.00</order_amt>
  	<order_dsc>10</order_dsc>
  	<order_net>$1,842.88</order_net>
  	<require_by>10/07/93</require_by>
  	<shipped_on>09/18/93</shipped_on>
  	<freight>$51.88</freight>
      </orders>
      <orders>
  	<order_id> 10095</order_id>
  	<cust_id>LAZYK </cust_id>
  	<emp_id>     3</emp_id>
  	<to_name>Lazy K Kountry Store</to_name>
  	<to_address>12 Orchestra Terrace</to_address>
  	<to_city>Walla Walla</to_city>
  	<to_region>WA</to_region>
  	<postalcode>99362</postalcode>
  	<to_country>USA</to_country>
  	<ship_count>USA</ship_count>
  	<ship_via>     3</ship_via>
  	<order_date>12/10/93</order_date>
  	<order_amt>$530.00</order_amt>
  	<order_dsc>10</order_dsc>
  	<order_net>$479.58</order_net>
  	<require_by>01/07/94</require_by>
  	<shipped_on>12/11/93</shipped_on>
  	<freight>$2.58</freight>
       </orders>
  </orders_table>
REFERENCES
==========
For additional information on XML, click the article number below to view the
article in the Microsoft Knowledge Base:
  Q191758 Convert FoxPro Cursor into XML Data Format
  Q253713 Move Data From an XML Document into a FoxPro Table
For more information about XML, see the following Web sites:
  http://www.w3.org
  http://www.xml.com
Additional query words: kbsweptMDAC260 GRANTS Jul-19-2000
======================================================================
Keywords          : kbMiscTools kbvfp600 kbXML kbGrpDSFox kbDSupport kbMSXML kbGrpDSMSXML 
Technology        : kbVFPsearch kbAudDeveloper kbMSXMLSearch kbVFP600 kbMSXML250 kbMSXML260 kbMSXML300
Version           : :2.5,2.6,3.0,6.0
Issue type        : kbhowto
=============================================================================