20

この技術はまだ人気がありますか?

XSLT ファイルを自動的に変換する Web サイトを作成したいと考えています。次のように動作する必要があります: ユーザーがサイトにアクセスすると、1 つのハンドラーがその要求を受け入れ、(要求された URL に従って) それに適した XML を見つけ、添付された XSL ファイルを使用してそれを変換します。

(本格的で高価な CMS システムを使用する代わりに) プレーンな XML ファイルを使用してサイトを簡単に更新できるようにするために、これを行いたいと考えています。

あなたは何を言っていますか?良いアイデア?悪いアイデア?誰かお勧めはありますか?

ありがとう!

4

14 に答える 14

26

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 の方が適切なオプションかもしれません。

于 2009-02-18T11:21:19.277 に答える
21

「構文が難しい」に基づく回答は、まったく回答ではありません。A)。実際にはそうではなく、B)。あなたはプログラマーになるはずです。それを学ぶだけです。

確かに、2005 年以来 XSLT が持っていないペースで他のテクノロジが進歩していますが、XSLT は依然として強力なツールであり、たとえば asp.net Web フォームにないレベルの抽象化を提供し、一般的なスケーラブルなソリューションを提供することを可能にします。さまざまな出力形式に単純にシリアル化します。任意の言語で HTML を生成するのは簡単ですが、それを XML に拡張したり、JSON に拡張したり、CSV に拡張したりするのは難しくなっています。

また、キャッシュされた変換は、I/O バウンドの環境でも十分に高速です。

OTOH、 XMLでデータを保存することは、一般的には良い考えではありません。上記のすべての理由から、DB/mem に格納し、必要に応じてシリアル化する方がはるかに優れています。

于 2009-02-18T12:07:22.757 に答える
3

ここポーランドでは、XSLTを頻繁に使用して機能する大きなWebポータルをいくつか知っています。ネットワークを介して送信されるデータの量を最小限に抑えることができるため、これらを使用しました。

私はこのプロジェクト(巨大なHRMアプリケーション)にも取り組み、そこでプログラミング言語を.NETに変換するために使用しました。

時々とても便利だと思います。

于 2009-02-18T11:50:01.720 に答える
2

SymphonyCMSはXSLTを使用します。そのCMSを使用しているときに、私が抱えていた唯一の本当の問題は、XSL / XPath構文の学習に関係していることがわかりました。これは、主に優れたチュートリアル/ドキュメントが不足しているためです。比較的最新のXSLTの使用法を見たい場合は、Symphonyを試してみる価値があるかもしれません。

于 2010-05-07T10:37:05.097 に答える
2

XSLT は、テンプレートを作成する方法の 1 つにすぎません。また、テンプレートが View コンポーネントである完全な MVC フレームワークの一部にすぎません。XSLT は優れたテクノロジですが、速度が遅く、スケーラブルな Web サイトを構築するための最初の選択肢ではありません。

MVC フレームワークを調査して、どれが最適かを確認してください。例: ASP.NET MVC、Ruby on Rails、CakePHP、Catalyst など。

于 2009-02-18T11:21:43.880 に答える
2

私はアイデアが好きです。XSL は素晴らしいツールですが、その有用性に気付く前に、その特別な悟りの瞬間が必要です。それ以前はまあまあのようです。

私はさまざまなアプリケーションで XSL を使用してきましたが、多くの時間を節約できました。しかし、明らかにそれを目的として使用しないでください。

于 2009-03-24T16:06:38.060 に答える
2

(本格的で高価な CMS システムを使用する代わりに) プレーンな XML ファイルを使用してサイトを簡単に更新できるようにするために、これを行いたいと考えています。

ええと、なに?無料でオープンソースの CMS は数多くあります。

テンプレートについて上でスポールソンが言ったことは要点です。入力 XML ファイルから出力ページを提供することは問題ありません。しかし、それだけでは CMS は得られません。CRUDはどうですか?探す?ページリスト?

サイトが非常に小さいため、関連するすべての更新を XML ファイルを手動で編集することで行うことができる場合は、それを試してみてください。しかし、それほど単純な場合は、HTML を手動で編集することもできます。

于 2009-02-18T20:54:27.887 に答える
2

xsltは難しいですか?

複雑な問題や複雑な標準に取り組むのはプログラマーの仕事です。もっと難しくてまだ必要なものがあります。新しいことを学ぶ必要があるたびに、それを続けてください。

Xslt は簡単です。

本当!xslt を教えてくれる良い本があります。たとえば rdf/owl (w3c 標準) を学ぶだけで、さらに複雑になる可能性があります...

xsltは遅いですか?可能であれば、適切なキャッシュを使用してください。(わかりました、常に可能であるとは限りません...)。

REST (いくつかの本または Roy Fielding の論文) について読んでください。これも不可欠なものです。

現在、XProc (xslt piplines) とひょうたん (Xproc 実装) 周辺の小さな restserver を使用すると、非常に多くのアーカイブを作成できます。間違いなく時間を節約できます。あらゆるデータを XML にエクスポートし、REST 経由で利用可能にし、XProc で変換できます。

于 2010-05-07T10:21:59.383 に答える
1

プラットフォームがASP.NETの場合は、myxslを確認してください

XSLTを使用すると、目立たないテンプレートを作成できます。これは、IMOの究極のテンプレートです。

于 2010-01-10T22:48:24.910 に答える
1

ちなみに、wowarory.comは、XSLT を使用するトラフィックの多いサイトの良い例です。実際、サイト全体で使用していると思います。

于 2010-01-23T07:04:22.320 に答える
0

私には悪い考えのように聞こえます。データベースに格納されたコンテンツで ASP.NET などを使用する方がはるかに簡単です。その後、コンテンツをデータベースに直接更新できます。これは、XML を編集するよりも簡単です。

于 2009-02-18T11:29:07.980 に答える