import java.io.*; import dk.brics.xact.*; public class Flatten { @Namespace public static final String rcp = "http://www.brics.dk/ixwt/recipes"; public static void main(String[] args) throws XactException, IOException { XML collection = XML.get("file:recipes.xml", "rcp:collection"); XML result = [[ <{ collection.selectFirst("rcp:description") }> <[MORE]> ]]; for (XML r : collection.select("rcp:recipe")) result = result.plug("MORE", [[ <{ r.selectFirst("rcp:title") }> <{ r.selectFirst("rcp:date") }> <{ r.selectAll("//rcp:ingredient[@amount]") }> <{ r.selectAll("//rcp:step") }> <{ r.selectFirst("rcp:comment") }> <{ r.selectFirst("rcp:nutrition") }> <{ r.selectFirst("rcp:related") }> <[MORE]>]]); result = result.close(); System.out.println(result.analyze("rcp:collection")); } }