XML/XPath: Difference between revisions

gastona code
(gastona code)
Line 881:
</lang>
 
=={{header|Gastona}}==
The example uses the command XMELON which parses a XML file of any schema and stores its
contents into db tables. This parser is described in the article [http://web3.codeproject.com/Articles/680642/XMeLon-Schema XMeLon-Schema]
<lang gastona>#javaj#
 
<frames> oSal, XML Path sample, 300, 400
#data#
 
<xml>
//<inventory title="OmniCorp Store #45x10^3">
// <section name="health">
// <item upc="123456789" stock="12">
// <name>Invisibility Cream</name>
// <price>14.50</price>
// <description>Makes you invisible</description>
// </item>
// <item upc="445322344" stock="18">
// <name>Levitation Salve</name>
// <price>23.99</price>
// <description>Levitate yourself for up to 3 hours per application</description>
// </item>
// </section>
// <section name="food">
// <item upc="485672034" stock="653">
// <name>Blork and Freen Instameal</name>
// <price>4.95</price>
// <description>A tasty meal in a tablet; just add water</description>
// </item>
// <item upc="132957764" stock="44">
// <name>Grob winglets</name>
// <price>3.56</price>
// <description>Tender winglets of Grob. Just add water</description>
// </item>
// </section>
//</inventory>
<DEEP_SQL_XML>
DEEP DB, SELECT, xmelon_data
,, path pathStr
,, tag tagStr
,, patCnt
,, dataPlace
,, value
#listix#
 
<main>
//parsing xml data ...
GEN, :mem datos, xml
XMELON, FILE2DB, :mem datos
//
//first item ...
//
//
LOOP, SQL,, //SELECT patCnt AS patITEM1 FROM (@<DEEP_SQL_XML>) WHERE path_pathStr == '/inventory/section/item' LIMIT 1
,HEAD, //<item
,, LOOP, SQL,, //SELECT * FROM (@<DEEP_SQL_XML>) WHERE patCnt == @<patITEM1> AND dataPlace == 'A'
,, , LINK, ""
,, ,, // @<tag_tagStr>="@<value>"
,, //>
,, //
,, LOOP, SQL,, //SELECT * FROM (@<DEEP_SQL_XML>) WHERE patCnt == @<patITEM1> AND dataPlace != 'A'
,, ,, // <@<tag_tagStr>>@<value></@<tag_tagStr>>
,TAIL, //
,TAIL, //</item>
//
//
//report prices ...
//
LOOP, SQL,, //SELECT value FROM (@<DEEP_SQL_XML>) WHERE tag_tagStr == 'price'
, LINK, ", "
,, @<value>
//
//put names into a variable
//
VAR=, tabnames, "name"
LOOP, SQL,, //SELECT value FROM (@<DEEP_SQL_XML>) WHERE tag_tagStr == 'name'
, LINK, ""
,, VAR+, tabnames, @<value>
DUMP, data,, tabnames
</lang>
 
{{out|Output}}
<pre>
parsing xml data ...
first item ...
 
<item upc="123456789" stock="12">
<name>Invisibility Cream</name>
<price>14.50</price>
<description>Makes you invisible</description>
</item>
 
report prices ...
14.50, 23.99, 4.95, 3.56
names into a variable
#data#
 
<tabnames>
//name
//health
//Invisibility Cream
//Levitation Salve
//food
//Blork and Freen Instameal
//Grob winglets
</pre>
=={{header|Go}}==
Using the standard <code>encoding/xml</code> package:
Anonymous user