136 :
nobodyさん :
02/09/12 01:25 ID:oCfEAb9q XMLはじめて2日目の者なのですが、 ちょっと質問させてください。 たとえば、XMLの方で、 <root> <文章>あいうえお、<強調>かきくけこ</強調>さしすせそ<強調>たちつてと</強調>なに・・・</文章> </root> だとして、 これを、XSLで、 <p>あいうえお、<b>かきくけこ</b>さしすせそ<b>たちつてと</b>なに・・・</p> みたいにするには、どうすればよいのでしょうか? なんかうまくいかないのです。
137 :
nobodyさん :02/09/12 02:15 ID:wHFPtXre
答えてもいいけどやってみたことを書いてよ
138 :
136 :02/09/12 02:56 ID:???
>>137 さん、返答ありがとうございます。
まだ、XSLの方が、よくわかっていないのですが、次のように書いてみて、うまくいきませんでした。
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="
http://www.w3.org/1999/XSL/Transform " version="1.0">
<xsl:template match="/">
<html><head></head><body>
<xsl:apply-templates select="root/文章"/>
</body></html>
</xsl:template>
<xsl:template match="文章">
<xsl:apply-templates select="強調"/>
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="強調">
<b><xsl:value-of select="."/></b>
</xsl:template>
</xsl:stylesheet>
上のほうの投稿で、text() というのがあったので、「これがヒントになるかな?」
ともおもったのですが、うーん、ちょっとわからないというところです。
アプローチとして、
1) xsl:for-eachとxsl:if を組み合わせて、タグを見て判定しながら、
順次連結してゆくような感じなのだろうか。。。
2)それとも、<強調> タグを<b>へと「ポン」と置き換えるようなアプローチ?
(できるんでしょうか。。。)
というところで現在考えているところなんです。。。
139 :
nobodyさん :02/09/12 03:41 ID:wHFPtXre
それだと「match="文章"」のテンプレまで来た後 1.まず<文章>の下位の<強調>要素のみにテンプレを適用させる a. <強調>かきくけこ</強調>に「match="強調"」テンプレが適用 b. <強調>たちつてと</強調>に「match="強調"」テンプレが適用 2.そのあと「文章」のvalue(=「あいうえお、かきくけこさしすせそたちつてとなに・・・ 」)を出力 になっちゃうでしょ。(続く)
140 :
nobodyさん :02/09/12 03:41 ID:wHFPtXre
素直に書けばこうなんだけど、
<?xml version="1.0" encoding="shift_jis" ?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="
http://www.w3.org/1999/XSL/Transform "
>
<xsl:template match="/root">
<html><body>
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="文章">
<p>
<xsl:apply-templates />
</p>
</xsl:template>
<xsl:template match="強調">
<b>
<xsl:apply-templates />
</b>
</xsl:template>
</xsl:stylesheet>
141 :
nobodyさん :02/09/12 03:42 ID:wHFPtXre
これだと「match="文章"」まできたところで 1.<xsl:apply-templates />なので<文章>のすべての子にテンプレを適用 a.あいうえお、→テンプレがないのでそのまま出力 b.<強調>かきくけこ</強調>→「match="強調"」テンプレが適用 c.さしすせそ d.<強調>たちつてと</強調> e.なに・・・ ってなる。
142 :
136 :02/09/12 04:03 ID:???
>>139-141 おおなるほど、そういう風に書いていけばよいのですね。
WEBの内容をXML+XSLにするときに、これ系のものが一番頻繁に
発生しそうだったので、なんとか解決したいと思っていました。
ご親切にありがとうございました。