Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to parse an XML file in VFP6
Message
General information
Forum:
Visual FoxPro
Category:
XML, XSD
Environment versions
Visual FoxPro:
VFP 6 SP5
Miscellaneous
Thread ID:
01105029
Message ID:
01105533
Views:
36
This message has been marked as a message which has helped to the initial question of the thread.
Yes, then end result is an HTML, with clickable table of contents, tables and columns, and all. Could you provide me some details regarding XSLT.

Here is an example for you:
LOCAL loXslt, loParser, loXslDoc, loXslProc
*** create the XSLTemplate object to cache the compiled XSLT style sheet 
*** and use this object to perform the transformation to reduce overhead. 
loXslt = CREATEOBJECT( 'Msxml2.XSLTemplate.4.0' )
loParser = CREATEOBJECT( 'Msxml2.DOMDocument.4.0' )
loXslDoc = CREATEOBJECT( 'Msxml2.FreeThreadedDOMDocument.4.0' )
loXslDoc.Async = .F.
*** load the style sheet
loXslDoc.Load( "Orders.xsl" )
loXslt.Stylesheet = loXslDoc
loParser.async = .f.
*** load the Xml file
loParser.Load( "Orders.xml" )
*** Create an instance of the XSLT processor
loXslProc = loXslt.CreateProcessor()
loXslProc.Input = loParser
*** apply the transformation
loXslProc.Transform()
*** save the HTML
STRTOFILE( loXslProc.Output, 'Orders.html' )
XML looks like this:
<?xml version="1.0" encoding="WINDOWS-1252"?><ORDERS><CUSTOMER ID="BOTTM"><COMPANY>Bottom-Dollar Markets</COMPANY><CONTACT>Elizabeth Lincoln</CONTACT><ORDERHEADER ID="10080"><DATE>1993-11-16</DATE><AMOUNT>2393.4000</AMOUNT><ORDERLINE LINE="1" ID="2"><PRICE>13.3000</PRICE><QUANTITY>30</QUANTITY><PRODUCT>Chang</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="12"><PRICE>26</PRICE><QUANTITY>60</QUANTITY><PRODUCT>Queso Manchego La Pastora</PRODUCT></ORDERLINE><ORDERLINE LINE="3" ID="30"><PRICE>18.1000</PRICE><QUANTITY>24</QUANTITY><PRODUCT>Nord-Ost Matjeshering</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10176"><DATE>1994-04-22</DATE><AMOUNT>727.5000</AMOUNT><ORDERLINE LINE="1" ID="55"><PRICE>16.8000</PRICE><QUANTITY>5</QUANTITY><PRODUCT>Pâté chinois</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="67"><PRICE>9</PRICE><QUANTITY>50</QUANTITY><PRODUCT>Laughing Lumberjack Lager</PRODUCT></ORDERLINE><ORDERLINE LINE="3" ID="68"><PRICE>8.7000</PRICE><QUANTITY>5</QUANTITY><PRODUCT>Scottish Longbreads</PRODUCT></ORDERLINE><ORDERLINE LINE="4" ID="71"><PRICE>15</PRICE><QUANTITY>10</QUANTITY><PRODUCT>Flotemysost</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10183"><DATE>1994-04-30</DATE><AMOUNT>237.3000</AMOUNT><ORDERLINE LINE="1" ID="10"><PRICE>21.7000</PRICE><QUANTITY>3</QUANTITY><PRODUCT>Ikura</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="23"><PRICE>6.3000</PRICE><QUANTITY>14</QUANTITY><PRODUCT>Tunnbröd</PRODUCT></ORDERLINE><ORDERLINE LINE="3" ID="49"><PRICE>14</PRICE><QUANTITY>6</QUANTITY><PRODUCT>Maxilaku</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10230"><DATE>1994-06-30</DATE><AMOUNT>2120</AMOUNT><ORDERLINE LINE="1" ID="27"><PRICE>30</PRICE><QUANTITY>36</QUANTITY><PRODUCT>Schoggi Schokolade</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="56"><PRICE>26</PRICE><QUANTITY>40</QUANTITY><PRODUCT>Gnocchi di nonna Alice</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10231"><DATE>1994-06-30</DATE><AMOUNT>414</AMOUNT><ORDERLINE LINE="1" ID="62"><PRICE>34.5000</PRICE><QUANTITY>12</QUANTITY><PRODUCT>Tarte au sucre</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10240"><DATE>1994-07-13</DATE><AMOUNT>2020</AMOUNT><ORDERLINE LINE="1" ID="32"><PRICE>22</PRICE><QUANTITY>49</QUANTITY><PRODUCT>Mascarpone Fabioli</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="33"><PRICE>1</PRICE><QUANTITY>18</QUANTITY><PRODUCT>Geitost</PRODUCT></ORDERLINE><ORDERLINE LINE="3" ID="46"><PRICE>8.4000</PRICE><QUANTITY>10</QUANTITY><PRODUCT>Spegesild</PRODUCT></ORDERLINE><ORDERLINE LINE="4" ID="55"><PRICE>16.8000</PRICE><QUANTITY>50</QUANTITY><PRODUCT>Pâté chinois</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10389"><DATE>1995-01-07</DATE><AMOUNT>1832.8000</AMOUNT><ORDERLINE LINE="1" ID="10"><PRICE>24.8000</PRICE><QUANTITY>16</QUANTITY><PRODUCT>Ikura</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="55"><PRICE>19.2000</PRICE><QUANTITY>15</QUANTITY><PRODUCT>Pâté chinois</PRODUCT></ORDERLINE><ORDERLINE LINE="3" ID="62"><PRICE>39.4000</PRICE><QUANTITY>20</QUANTITY><PRODUCT>Tarte au sucre</PRODUCT></ORDERLINE><ORDERLINE LINE="4" ID="70"><PRICE>12</PRICE><QUANTITY>30</QUANTITY><PRODUCT>Outback Lager</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10410"><DATE>1995-01-28</DATE><AMOUNT>802</AMOUNT><ORDERLINE LINE="1" ID="33"><PRICE>2</PRICE><QUANTITY>49</QUANTITY><PRODUCT>Geitost</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="59"><PRICE>44</PRICE><QUANTITY>16</QUANTITY><PRODUCT>Raclette Courdavault</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10411"><DATE>1995-01-28</DATE><AMOUNT>1208.5000</AMOUNT><ORDERLINE LINE="1" ID="41"><PRICE>7.7000</PRICE><QUANTITY>25</QUANTITY><PRODUCT>Jack&amp;apos;s New England Clam Chowder</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="44"><PRICE>15.5000</PRICE><QUANTITY>40</QUANTITY><PRODUCT>Gula Malacca</PRODUCT></ORDERLINE><ORDERLINE LINE="3" ID="59"><PRICE>44</PRICE><QUANTITY>9</QUANTITY><PRODUCT>Raclette Courdavault</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10431"><DATE>1995-02-17</DATE><AMOUNT>2523</AMOUNT><ORDERLINE LINE="1" ID="17"><PRICE>31.2000</PRICE><QUANTITY>50</QUANTITY><PRODUCT>Alice Mutton</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="40"><PRICE>14.7000</PRICE><QUANTITY>50</QUANTITY><PRODUCT>Boston Crab Meat</PRODUCT></ORDERLINE><ORDERLINE LINE="3" ID="47"><PRICE>7.6000</PRICE><QUANTITY>30</QUANTITY><PRODUCT>Zaanse koeken</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10492"><DATE>1995-04-19</DATE><AMOUNT>896</AMOUNT><ORDERLINE LINE="1" ID="25"><PRICE>11.2000</PRICE><QUANTITY>60</QUANTITY><PRODUCT>NuNuCa Nuß-Nougat-Creme</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="42"><PRICE>11.2000</PRICE><QUANTITY>20</QUANTITY><PRODUCT>Singaporean Hokkien Fried Mee</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10742"><DATE>1995-12-02</DATE><AMOUNT>3118</AMOUNT><ORDERLINE LINE="1" ID="3"><PRICE>10</PRICE><QUANTITY>20</QUANTITY><PRODUCT>Aniseed Syrup</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="60"><PRICE>34</PRICE><QUANTITY>50</QUANTITY><PRODUCT>Camembert Pierrot</PRODUCT></ORDERLINE><ORDERLINE LINE="3" ID="72"><PRICE>34.8000</PRICE><QUANTITY>35</QUANTITY><PRODUCT>Mozzarella di Giovanni</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10918"><DATE>1996-03-19</DATE><AMOUNT>1930</AMOUNT><ORDERLINE LINE="1" ID="1"><PRICE>18</PRICE><QUANTITY>60</QUANTITY><PRODUCT>Chai</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="60"><PRICE>34</PRICE><QUANTITY>25</QUANTITY><PRODUCT>Camembert Pierrot</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10944"><DATE>1996-03-29</DATE><AMOUNT>1139.1000</AMOUNT><ORDERLINE LINE="1" ID="11"><PRICE>21</PRICE><QUANTITY>5</QUANTITY><PRODUCT>Queso Cabrales</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="44"><PRICE>19.4500</PRICE><QUANTITY>18</QUANTITY><PRODUCT>Gula Malacca</PRODUCT></ORDERLINE><ORDERLINE LINE="3" ID="56"><PRICE>38</PRICE><QUANTITY>18</QUANTITY><PRODUCT>Gnocchi di nonna Alice</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10949"><DATE>1996-03-30</DATE><AMOUNT>4422</AMOUNT><ORDERLINE LINE="1" ID="6"><PRICE>25</PRICE><QUANTITY>12</QUANTITY><PRODUCT>Grandma&amp;apos;s Boysenberry Spread</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="10"><PRICE>31</PRICE><QUANTITY>30</QUANTITY><PRODUCT>Ikura</PRODUCT></ORDERLINE><ORDERLINE LINE="3" ID="17"><PRICE>39</PRICE><QUANTITY>6</QUANTITY><PRODUCT>Alice Mutton</PRODUCT></ORDERLINE><ORDERLINE LINE="4" ID="62"><PRICE>49.3000</PRICE><QUANTITY>60</QUANTITY><PRODUCT>Tarte au sucre</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10975"><DATE>1996-04-11</DATE><AMOUNT>717.5000</AMOUNT><ORDERLINE LINE="1" ID="8"><PRICE>40</PRICE><QUANTITY>16</QUANTITY><PRODUCT>Northwoods Cranberry Sauce</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="75"><PRICE>7.7500</PRICE><QUANTITY>10</QUANTITY><PRODUCT>Rhönbräu Klosterbier</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="10982"><DATE>1996-04-13</DATE><AMOUNT>1014</AMOUNT><ORDERLINE LINE="1" ID="7"><PRICE>30</PRICE><QUANTITY>20</QUANTITY><PRODUCT>Uncle Bob&amp;apos;s Organic Dried Pears</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="43"><PRICE>46</PRICE><QUANTITY>9</QUANTITY><PRODUCT>Ipoh Coffee</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="11027"><DATE>1996-05-03</DATE><AMOUNT>1170.3000</AMOUNT><ORDERLINE LINE="1" ID="24"><PRICE>4.5000</PRICE><QUANTITY>30</QUANTITY><PRODUCT>Guaraná Fantástica</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="62"><PRICE>49.3000</PRICE><QUANTITY>21</QUANTITY><PRODUCT>Tarte au sucre</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="11045"><DATE>1996-05-10</DATE><AMOUNT>1309.5000</AMOUNT><ORDERLINE LINE="1" ID="33"><PRICE>2.5000</PRICE><QUANTITY>15</QUANTITY><PRODUCT>Geitost</PRODUCT></ORDERLINE><ORDERLINE LINE="2" ID="51"><PRICE>53</PRICE><QUANTITY>24</QUANTITY><PRODUCT>Manjimup Dried Apples</PRODUCT></ORDERLINE></ORDERHEADER><ORDERHEADER ID="11048"><DATE>1996-05-11</DATE><AMOUNT>525</AMOUNT><ORDERLINE LINE="1" ID="68"><PRICE>12.5000</PRICE><QUANTITY>42</QUANTITY><PRODUCT>Scottish Longbreads</PRODUCT></ORDERLINE></ORDERHEADER></CUSTOMER></ORDERS>
XSL looks like this:
<?xml version='1.0' encoding="WINDOWS-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="CUSTOMER">
	<html>
	<head>
	<title>Using XSLT to transform the Orders XML document into formatted HTML</title>
	</head>
	<body>
		<h1>Orders for <xsl:value-of select="COMPANY"/></h1>
		<xsl:for-each select="ORDERHEADER">
			<h3>Order Number: <xsl:value-of select="@ID"/> Date: <xsl:value-of select="DATE"/> Total: <xsl:value-of select="AMOUNT"/></h3>
			<ul>
			<xsl:for-each select="ORDERLINE">
				<li><xsl:value-of select="concat(QUANTITY, ' ')"/><xsl:value-of select="PRODUCT"/></li>
			</xsl:for-each>
			</ul>
		</xsl:for-each>
	</body>
	</html>
</xsl:template>
</xsl:stylesheet>			
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform