これ何て呼びますか Part2

XMLをXSLを利用してHTMLに変換しようとしています。
以下のXML(一部)の中に記載の<break />をHTMLの<br>にXSLTを使って変換したいのですが、どのように記述(処理)したらよいかわかりません。教えてください。
<item name="jikou">
<text>====================================================
<break /> 日 程:2004年03月28日(日)
<break />  ※変更となっております。
<break />===================================
</text>
</item>

A 回答 (4件)

#1さんの補足で



XMLファイル
<?xml version="1.0" encoding="utf-8" ?>
<item name="jikou">
<text>====================================================
<break /> 日 程:2004年03月28日(日)
<break />  ※変更となっております。
<break />===================================
</text>
</item>

XSLファイル
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html" encoding="Shift_JIS" indent="yes"/>

<!-- 文書全体のテンプレートルール -->
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates select="item" />
</body>
</html>
</xsl:template>

<!-- <item>のテンプレートルール -->
<xsl:template match="item">
<xsl:apply-templates select="text" />
</xsl:template>

<!-- <text>のテンプレートルール -->
<xsl:template match="text">
<xsl:apply-templates select="node()" />
</xsl:template>

<!-- <break>のテンプレートルール -->
<xsl:template match="break"><br /></xsl:template>

</xsl:stylesheet>

XML宣言のencodingは実際のファイルの保存するコードに
書き換えてください。

なお、#2さんテキスト修飾用のタグ?についても
「再帰呼び出し」という方法を使用することで可能です。
例えば、上記XMLの<break />の変わりに改行コードを
<BR>に変換したい場合などに使用します。
    • good
    • 0
この回答へのお礼

回答を頂きありがとうございました。
上記のように対応して確認してみます。

お礼日時:2004/08/23 08:46

#2です。


質問者の方、私の意見を見た方、申し訳ありません。
薄学なのにでしゃばってすみませんでしたm(__)m
    • good
    • 0

僕はXMLってのは文章等のデータ構成の記述に使うものだと思っています。

そして、XSLはその構成の変更や構成を利用した加工ををするものだと思います。今変換したいタグは文書構成上のタグではなく、テキスト修飾用のタグですよね。そういうタグの加工ってXSLではできないようです。修飾用のタグはテキストの一部と割り切って、エディタやperlなんかでテキスト変換したほうが良いんではないでしょうか?
    • good
    • 0
この回答へのお礼

アドバイスを頂き、ありがとうございました。
javaで対応するようにします。

お礼日時:2004/08/16 09:50

<xsl:template match="break">


<br/>
</xsl:template>

で、いかがでしょう。

XMLとXSLTを勉強したのはかなり前で当時使ってたのを引っ張り出して導いているので詳しく思い出せません。

この回答への補足

回答を頂きありがとうございます。
教えて頂いた方法だと<break />だけがかたまって処理されてしまい、各<break />の後ろにあるテキストとの整合性がなくなってしまったのですが、そんなことはありませんか。書き方が悪いのでしょうか。
最終的には以下のようなHTMLにしたいのですが。
====================================================
<br> 日 程:2004年03月28日(日)
<br>  ※変更となっております。
<br>===================================

補足日時:2004/08/14 09:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報