あなたの習慣について教えてください!!

XSLT初心者です。
例えば、
-XML-------------
<data>○○○○○<color>●●●●●</color>○○○○○○○○○○○○</data>
----------------
があったとして、それを、
-HTML-------------
<p>○○○○○<font color="red">●●●●●</font>○○○○○○○○○○○○</p>
----------------
のようなHTMLへ変換するためのXSLTは
どのように記述すればよいのでしょうか?

初歩的な質問なのかも知れないのですが、
よろしくお願いします。

A 回答 (5件)

==============hoge.xml===============


<?xml version="1.0" encoding="Shift_JIS"?>
<data>○○○○○<color>●●●●●</color>○○○○○○○○○○○○</data>
==============hogehoge.xsl===============
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="data">
<p><xsl:apply-templates /></p>
</xsl:template>

<xsl:template match="color">
<font>
<xsl:attribute name="color">red</xsl:attribute>
<xsl:value-of select="." />
</font>
</xsl:template>

</xsl:stylesheet>
========hogerake.xml=================
<?xml version="1.0" encoding="UTF-16"?><p>○○○○○<font color="red">●●●●●</font>○○○○○○○○○○○○</p>
    • good
    • 0

>これだと、全体のDTDってことになると思うのですが、


これを、このタグのみって限定することは

えーっと。えーっと。えーっと。言っていることが把握できないな・・・・

●出来上がったXHTMLの一部分の要素に対し、包含関係の制約をつける

じゃなくて

●XHTML文書全体に対し、使える要素をDTD内で宣言されている要素のうちいくつかに制限する

ってことだよね・・・・

XHTMLでDOCTYPE宣言を書き換えて良いのか僕は自信が持てない。可能であるにしても(ないならXML文書として扱う)DTD自体を改めて作り直す必要があると思う

まぁXHTML 1.1のDTDは読み慣れれば結構簡単なので
変更の方法も楽だと思うけど。IGNOREしまくりw。

この回答への補足

出来上がったXMLの一部の要素内でXHTMLを使いたい。
ということです。
例えば、
<data>
<item>
<comment>この中は、XHTMLで記述</comment>
</item>
</data>
って感じです。これの、DTDで困っています。
説明ヘタですいません。
よろしくお願いします。

補足日時:2006/08/08 17:25
    • good
    • 0

言い忘れてた補足。



日本語はjpじゃなくてja

http://www.kanzaki.com/docs/html/lang.html
    • good
    • 0
この回答へのお礼

了解です。
jaでしたね。ボンミスです。

お礼日時:2006/08/07 16:23

>みたいに、宣言するということでしょうか?


それでOK

>DTD宣言
質問者様は自分で調べてくれそうだからヒントで
xsl:outputを調べてみよう!(この要素はxsl:stylesheet直下にしかおけない。)

http://www6.airnet.ne.jp/manyo/xml/xslt/step22.h …
    • good
    • 0
この回答へのお礼

ありがとうございます。

XMLなら、これ
<xsl:output method="xml" encoding="UTF-8"
doctype-system="sample.dtd" />
HTMLなら、これ
<xsl:output method="html" encoding="Shift_JIS"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
を宣言すれば、良いってことだと思うのですが、
これだと、全体のDTDってことになると思うのですが、
これを、このタグのみって限定することは
出来るのでしょうか?
理解が違っているかもしれませんが、よろしくお願いします。

お礼日時:2006/08/07 16:27

#1です。

いうかどうか迷ったけど
補足要求もかねて

●まるごとp要素で置き換えたけどそれでいいのか?

ちなみに
本格的にXHTMLとするなら
「名前空間http://www.w3.org/1999/xhtmlの宣言が必要」
    • good
    • 0
この回答へのお礼

ありがとうございます。
>ちなみに
>本格的にXHTMLとするなら
>「名前空間http://www.w3.org/1999/xhtmlの宣言が必>要」
>
ここですが、まさにおっしゃるとおりです。実は、<data>タグ内は、XHTMLにしようと思っています。
教えて頂いたことを、参考にすると、
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="jp" lang="jp">
みたいに、宣言するということでしょうか?
そうすると、DTD宣言はどうすればいいのか?
という疑問も出てきました。
この辺りをご教授いただければありがたいです。
よろしくお願いします。

お礼日時:2006/08/04 08:57

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


おすすめ情報