XML/XPath: Difference between revisions

no edit summary
No edit summary
Line 442:
}
alert( names );</lang>
 
=={{header|Objeck}}==
XPath is used to fetch element tags.
<lang objeck>
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());
};
};
}
}
}
</lang>
 
=={{header|Oz}}==
760

edits