57 lines
2.2 KiB
Text
57 lines
2.2 KiB
Text
use XML;
|
|
|
|
bundle Default {
|
|
class Test {
|
|
function : Main(args : String[]) ~ Nil {
|
|
in := String->New();
|
|
in->Append("<inventory title=\"OmniCorp Store #45x10^3\">");
|
|
in->Append("<section name=\"health\">");
|
|
in->Append("<item upc=\"123456789\" stock=\"12\">");
|
|
in->Append("<name>Invisibility Cream</name>");
|
|
in->Append("<price>14.50</price>");
|
|
in->Append("<description>Makes you invisible</description>");
|
|
in->Append("</item>");
|
|
in->Append("<item upc=\"445322344\" stock=\"18\">");
|
|
in->Append("<name>Levitation Salve</name>");
|
|
in->Append("<price>23.99</price>");
|
|
in->Append("<description>Levitate yourself for up to 3 hours per application</description>");
|
|
in->Append("</item>");
|
|
in->Append("</section>");
|
|
in->Append("<section name=\"food\">");
|
|
in->Append("<item upc=\"485672034\" stock=\"653\">");
|
|
in->Append("<name>Blork and Freen Instameal</name>");
|
|
in->Append("<price>4.95</price>");
|
|
in->Append("<description>A tasty meal in a tablet; just add water</description>");
|
|
in->Append("</item>");
|
|
in->Append("<item upc=\"132957764\" stock=\"44\">");
|
|
in->Append("<name>Grob winglets</name>");
|
|
in->Append("<price>3.56</price>");
|
|
in->Append("<description>Tender winglets of Grob. Just add water</description>");
|
|
in->Append("</item>");
|
|
in->Append("</section>");
|
|
in->Append("</inventory>");
|
|
|
|
parser := XmlParser->New(in);
|
|
if(parser->Parse()) {
|
|
# get first item
|
|
results := parser->FindElements("//inventory/section[1]/item[1]");
|
|
if(results <> Nil) {
|
|
IO.Console->Instance()->Print("items: ")->PrintLine(results->Size());
|
|
};
|
|
# get all prices
|
|
results := parser->FindElements("//inventory/section/item/price");
|
|
if(results <> Nil) {
|
|
each(i : results) {
|
|
element := results->Get(i)->As(XMLElement);
|
|
element->GetContent()->PrintLine();
|
|
};
|
|
};
|
|
# get names
|
|
results := parser->FindElements("//inventory/section/item/name");
|
|
if(results <> Nil) {
|
|
IO.Console->Instance()->Print("names: ")->PrintLine(results->Size());
|
|
};
|
|
};
|
|
}
|
|
}
|
|
}
|