XML/XPath: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 442: | Line 442: | ||
} |
} |
||
alert( names );</lang> |
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}}== |
=={{header|Oz}}== |