お仕事で作っているサポート情報一覧、いい加減情報が増えてきたので、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がかけるくらいの事まで出来そうです。