@Grab(group='org.eobjects.metamodel', module='MetaModel-full', version='3.4.5') import org.eobjects.metamodel.* import org.eobjects.metamodel.xml.* // XMLファイルに対するテーブル構造を定義 XmlSaxTableDef prjTableDef = new XmlSaxTableDef( "/projects/project", [ "/projects/project@name", "/projects/project/owner" ] as String[] ) dc = new XmlSaxDataContext(new File("projects.xml"), prjTableDef) // テーブルを指定 table = dc.getDefaultSchema().getTableByName("/project") // 所有者がuser2のプロジェクトを抽出 query = dc.query().from(table) .select("row_id", "@name", "/owner") .where(table.getColumnByName("/owner")).eq("user2").toQuery() // Queryの表示 println query.toString() // Queryの実行 ds = dc.executeQuery(query) for(row in ds){ // row_idとプロジェクト名、所有者を表示 println row.getValue(0) + ":" + row.getValue(1) + ":" + row.getValue(2) }サンプルXMLファイル
<?xml version="1.0" encoding="UTF-8"?> <projects> <project name="テストプロジェクト1"> <owner>user1</owner> </project> <project name="テストプロジェクト2"> <owner>user2</owner> </project> <project name="テストプロジェクト3"> <owner>user3</owner> </project> </projects>
動作環境
groovy 2.1.7, JDK7 update40
0 件のコメント:
コメントを投稿