WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:XML + XSL で目次を作る

ぽち [WriteDate : Mon May 28 10:17:45 2001]

こんにちは.

この掲示板に適した質問かどうかわかりませんが,
とりあえず聞いてしまいます.

XML + XSL で目次とか索引等を自動的に
出力することを考えたいのです.

例えば次のような XML ファイルを作ります.

<word>きゅうり</word>
<meaning>
ウリ科の1年生果菜.原産地はインドとされ,…
</meaning>
<word>とまと</word>
<meaning>
ナス科の1年生果菜.原産地は南アメリカの…
</meaning>
<word>たまねぎ</word>
<meaning>
ユリ科の多年生作物.原産地はおそらく西アジア周辺.…
</meaning>


これを XSL で展開して,次のようにします.

<a href="#きゅうり">きゅうり</a>
<a href="#とまと">とまと</a>
<a href="#たまねぎ">たまねぎ</a>

これを実現するために XSL を
どのように書いたらいいのでしょうか?

よろしくお願いします.


安芸川晴海 [MAIL] [URL] [WriteDate : Mon May 28 15:08:33 2001]

word要素sの親要素に対するtemplateで

<xsl:for-each select="./word">
<xsl:element name="a">
   <xsl:attribute name="href">#<xsl:value-of="."></xsl:attribute>
</xsl:element>
</xsl:for-each>

かな? うろ覚えだけど。


安芸川晴海 [MAIL] [URL] [WriteDate : Tue May 29 08:26:02 2001]

誤:
> <xsl:attribute name="href">#<xsl:value-of="."></xsl:attribute>

正:
<xsl:attribute name="href">#<xsl:value-of="." /></xsl:attribute>


安芸川晴海 [MAIL] [URL] [WriteDate : Tue May 29 08:26:49 2001]

なんか、ぼけてます。

誤:
> <xsl:attribute name="href">#<xsl:value-of="."></xsl:attribute>

正:
<xsl:attribute name="href">#<xsl:value-of select="." /></xsl:attribute>


ぽち [WriteDate : Tue May 29 09:24:21 2001]

レス遅れてすいません.

安芸川さん,どーもありがとうございます.
いつも拝見しております.

お答えいただいたことを,
いま,テストして確認します.
うまくいったらお知らせしますので.

ありがとうございました.


ぽち [WriteDate : Fri Jun 22 10:27:08 2001]

えっと,引き続き質問です.

いま,XML のデータを XSL で IE5.0 で HTML に変換して
見ています.

ところが,IE5.0 で表示したもの「ソースの表示」で見ても
生の XML のソースが出てきます.

デバックのために XSL によって
IE がどのように変換したのかを見たいのですが,
何か方法はありますでしょうか?

よろしくお願いします.


yuu [MAIL] [URL] [WriteDate : Sat Jun 23 12:56:46 2001]

こんなようなASPを作ってのはどうよ?

<%@Language=VBScript%>
<%
Dim oXmlDoc, oXslDoc, oErr

Set oXmlDoc = Server.CreateObject("Microsoft.XMLDOM")
Set oXslDoc = Server.CreateObject("Microsoft.XMLDOM")

oXmlDoc.Async = false
oXmlDoc.Load(Server.MapPath("foo.xml"))
Set oErr = oXmlDoc.parseError
If oErr.errorCode <> 0 Then
 Response.Write("Your XML has error: <br/>" & oErr.Reason)
 Response.End
End If

oXslDoc.Async = false
oXslDoc.Load(Server.MapPath("bar.xsl"))
Set oErr = oXslDoc.parseError
If oErr.errorCode <> 0 Then
 Response.Write("Your XSL has error: <br/>" & oErr.Reason)
 Response.End
End If

Response.Write(oXmlDoc.documentElement.transformNode(oXslDoc.documentElement))
%>

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World