目次へ

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

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp