解答例 - 実習課題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);
}
}

