お仕事で作っているサポート情報一覧、いい加減情報が増えてきたので、html直すのも面倒になってきました。そこで重い腰を上げて、XMLでなんとかしようと。BiglobeのホスティングはCGIがちょっと貧弱環境なので、ASP.NETなんて夢のまた夢。使えれば楽なんですけど。Perl 5.8勉強する?
あきらめてExpression Webでhtmlを直そうかと思ったら…なんとXML+XSLTの編集機能があるじゃないですか。そこで使ってみました(Sharepoint Designerにもあります)。
ところが、私の作っているものはサポート情報なので、リンクが欲しい。そうなるとXSLTを見るしかないようです…自動生成ではこんなXMLに対して、こんなXSLTを作ってくれました。
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <Infomation> <Item Name="Info:001" Date="2007/11/1" Summary="最初の告知" Url="fixlist001.html"/> <Item Name="Info:002" Date="2007/11/2" Summary="次の告知" Url="fixlist002.html"/> </Infomation>
(略) <xsl:template name="dvt_1.body"> <xsl:param name="Rows"/> <xsl:param name="FirstRow"/> <xsl:param name="LastRow"/> <xsl:for-each select="$Rows"> <xsl:variable name="KeepItemsTogether" select="false()"/> <xsl:variable name="HideGroupDetail" select="false()"/> <xsl:variable name="GroupStyle" select="'auto'"/> <xsl:if test="true()"> <xsl:if test="not($HideGroupDetail)" ddwrt:cf_ignore="1"> <tr style="display:{$GroupStyle}"> <td class="ms-vb"> <xsl:value-of select="@Name"/> </td> <td class="ms-vb"> <xsl:value-of select="@Date"/> </td> <td class="ms-vb"> <xsl:value-of select="@Summary"/> </td></tr> </xsl:if> </xsl:if> </xsl:for-each> </xsl:template> (略)
これがこうなってほしい。教えてgooでちょうどいいところを発見。参考になるかな?
管理番号 | 発行日 | 概要 |
---|---|---|
Info:001(ここはurlのリンクになる) | 2007/11/1 | 最初の告知 |
Info:002 | 2007/11/2 | 次の告知 |
実際はソートするか、xmlを配慮しますけどね。今回初めてといっていいくらいXSLTを見たんですが…奥深いんですね。それこそFizzBuzzがかけるくらいの事まで出来そうです。