RosettaCodeData/Task/XML-XPath/Rascal/xml-xpath-1.rascal

24 lines
477 B
Plaintext

import lang::xml::DOM;
import Prelude;
public void get_first_item(loc a){
D = parseXMLDOM(readFile(a));
top-down-break visit(D){
case E:element(_,"item",_): return println(xmlPretty(E));
};
}
public void print_prices(loc a){
D = parseXMLDOM(readFile(a));
for(/element(_,"price",[charData(/str p)]) := D)
println(p);
}
public list[str] get_names(loc a){
D = parseXMLDOM(readFile(a));
L = [];
for(/element(_,"name",[charData(/str n)]) := D)
L += n;
return L;
}