- ベストアンサー
XMLからHTMLへの変換方法について
- XMLをXSLを利用してHTMLに変換する方法について教えてください
- XMLからHTMLへの変換において、<break />をHTMLの<br>に変換する方法について教えてください
- XMLからHTMLへの変換時にXSLTを使って<break />をHTMLの<br>に変換する方法について教えてください
- みんなの回答 (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>に変換したい場合などに使用します。
その他の回答 (3)
- fo-o
- ベストアンサー率50% (4/8)
#2です。 質問者の方、私の意見を見た方、申し訳ありません。 薄学なのにでしゃばってすみませんでしたm(__)m
- fo-o
- ベストアンサー率50% (4/8)
僕はXMLってのは文章等のデータ構成の記述に使うものだと思っています。そして、XSLはその構成の変更や構成を利用した加工ををするものだと思います。今変換したいタグは文書構成上のタグではなく、テキスト修飾用のタグですよね。そういうタグの加工ってXSLではできないようです。修飾用のタグはテキストの一部と割り切って、エディタやperlなんかでテキスト変換したほうが良いんではないでしょうか?
お礼
アドバイスを頂き、ありがとうございました。 javaで対応するようにします。
- the845t
- ベストアンサー率33% (246/743)
<xsl:template match="break"> <br/> </xsl:template> で、いかがでしょう。 XMLとXSLTを勉強したのはかなり前で当時使ってたのを引っ張り出して導いているので詳しく思い出せません。
補足
回答を頂きありがとうございます。 教えて頂いた方法だと<break />だけがかたまって処理されてしまい、各<break />の後ろにあるテキストとの整合性がなくなってしまったのですが、そんなことはありませんか。書き方が悪いのでしょうか。 最終的には以下のようなHTMLにしたいのですが。 ==================================================== <br> 日 程:2004年03月28日(日) <br> ※変更となっております。 <br>===================================
お礼
回答を頂きありがとうございました。 上記のように対応して確認してみます。