Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
57
Task/XML-XPath/Objeck/xml-xpath.objeck
Normal file
57
Task/XML-XPath/Objeck/xml-xpath.objeck
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
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());
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue