2002 年から 2003 年にかけて、私は XSLT を使って多くのことを行いました (そして、2006 年から 2007 年にはさらにいくつかのことを行いました)。これに関するあなたのマイレージはさまざまですが、正直なところ、いくつかの理由でそれを避けます。
- 構文は目もくらむばかりで、学ぶのも難しく、正しく理解するのも難しく、単純なだけでも頭が痛くなります。テンプレート自体はそれほど悪くはありませんが、いくつかの危険な XPath 式が挿入されており、ただ痛いだけです。
- 適度なサイズのドキュメントと変換の場合、比較的遅くなります。自分に関連するほど遅いかどうかは、シナリオのベンチマークを行った場合にのみ見つかるものなので、これを包括的なルール、より警告的な話、または警告と見なさないでください。
- エラー メッセージはそれほど役に立たず、問題を特定するのが難しい場合があります。従来のアプローチとは異なり、デバッガーを起動して XSLT をステップ実行することはできません。
- 最新の Web フレーバー言語 (C#、Java、PHP、Python、Ruby など) を使用して HTML を生成するのは簡単で、簡単で、ログに記録しやすく、デバッグも簡単です。
- XML の操作は間違いなく面倒であり、オブジェクトを直接操作してマークアップに変換するコードがさらに生成されます。もちろん、これは選択した言語が提供するツールによって異なります。
最近、XSLT 用のアプリケーションを実際に目にすることができる唯一の場所は、XML を生成する Web サービスを使用することです (最近では多くの場合、JSON とより簡単に使用できる形式が生成されます)。
その場合でも、おそらく、Java の JAXB (または他の言語の同様のテクノロジ) を使用して、XML を直接操作するでしょう。
更新: The Death of XSLT in Web Frameworks に出くわしました。例えば:
例: XSLT を使用して、いくつかの条件に基づいて (異なる CSS スタイルを使用して) テーブルの行を非表示にする方法は? 見る:
<tr>
<xsl:attribute name="style">
<xsl:choose>
<xsl:when test="CONDITION">
<xsl:value-of select="'visibility: visible'">
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'visibility: collapse'">
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
...
</tr>
JSP 1.x でも同じです。
<tr style='visibility:<%=CONDITION ? "collapse" : "visible"%>'>
...
</tr>
または JSP 2.x の場合:
<tr style='visibility:${CONDITION ? "collapse" : "visible"}'>
...
</tr>
要約:
したがって、新しいプロジェクトを開始する場合は、XSLT に飛び込む前に 2 回 (または 10 回) 考えてください。> Eclipse を使用している場合は、JSP/JSTL を使用する前によく考えてください。Velocity または > FreeMarker の方が適切なオプションかもしれません。