目次へ

解答例 - 実習課題2 - 8.Transformer

(実習課題2)

以下のXMLを、スタイルシートに従い変換するプログラムを作成しなさい。

  • 出力結果は見やすくインデントする。
  • 文字コードEUC-JP、またはShift-JISで出力する。
  • パラメータnの値を、引数で指定できるようにする。
people.xml
<?xml version="1.0" encoding="EUC-JP"?>
<people>
  <person>会田 太郎</person>
  <person>植田 次郎</person>
  <person>岡田 三朗</person>
  <person>菊田 四郎</person>
  <person>家古田 五郎</person>
</people>
to_html.xsl
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="n" select="2"/>
<xsl:template match="/">
  <html>
  <head><title>html method</title></head>
    <xsl:apply-templates select="people"/>
  </html>
</xsl:template>

<xsl:template match="people">
  <p><xsl:value-of select="person[position()=$n]"/></p>
</xsl:template>

</xsl:stylesheet>

解答例

/**
 * XsltTransformer.java
 * 
 * TECHSCORE Java XML DOM XSLT 8章 実習課題2
 * 
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */

package com.techscore.dom.chapter8.exercise2;

import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

public class XsltTransformer {

    public static void main(String[] args) throws Exception {
        Source xsltSource = new StreamSource("to_html.xsl");

        TransformerFactory transFactory = TransformerFactory.newInstance();
        Transformer transformer = transFactory.newTransformer(xsltSource);

        transformer.setOutputProperty(OutputKeys.METHOD, "html");
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.setOutputProperty(OutputKeys.ENCODING, "EUC-JP");

        if (args.length > 0) {
            transformer.setParameter("n", args[0]);
        }

        Source source = new StreamSource("people.xml");
        Result result = new StreamResult(System.out);
        transformer.transform(source, result);

    }
}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp