解答例 - 実習課題1 - 5.XML文書を作成する2
(実習課題1)
以下のantのbuildファイルを生成するプログラムを作成しなさい。
<project name="sample_project" default="compile" basedir="."> <property name="srcdir" value="./src"/> <target name="compile"> <!-- ここにコンパイルを実行するタスクを記述 --> </target> <target name="install" depends="compile"> <!-- ここにインストールを実行するタスクを記述--> </target> </project>
解答例
/** * GenerateBuildXML.java * * TECHSCORE Java XML DOM XSLT 5章 実習課題1 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.dom.chapter5.exercise1; import java.io.File; import java.io.FileOutputStream; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; public class GenerateBuildXML { public static void main(String[] args) throws Exception { Document document = DocumentBuilderFactory.newInstance() .newDocumentBuilder() .getDOMImplementation() .createDocument("", "project", null); // project Element project = document.getDocumentElement(); Attr nameAtrr = document.createAttribute("name"); nameAtrr.setValue("sample_project"); project.setAttributeNode(nameAtrr); Attr defaultAttr = document.createAttribute("default"); defaultAttr.setValue("compile"); project.setAttributeNode(defaultAttr); Attr basedirAttr = document.createAttribute("basedir"); basedirAttr.setValue("."); project.setAttributeNode(basedirAttr); // property Element property = document.createElement("property"); property.setAttribute("name", "srcdir"); property.setAttribute("value", "./src"); project.appendChild(property); // compile target Element compile = document.createElement("target"); compile.setAttribute("name", "compile"); compile.appendChild(document.createComment("ここにコンパイルを実行するタスクを記述")); project.appendChild(compile); // install target Element install = document.createElement("target"); install.setAttribute("name", "install"); install.setAttribute("depends", "compile"); install.appendChild(document.createComment("ここにインストールを実行するタスクを記述")); project.appendChild(install); Transformer transformer = TransformerFactory.newInstance() .newTransformer(); DOMSource source = new DOMSource(document); FileOutputStream os = new FileOutputStream(new File("build.xml")); StreamResult result = new StreamResult(os); transformer.transform(source, result); } }