- - PR -
1つのXMLで表示を切り替え
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-09 11:27
はじめまして、チョップと申します。
早速ですが、質問させて下さい。 文章と画像情報のデータが書き込まれた1つのXMLデータを、 XSLTでHTMLに変換し、1ページ目に文章を、2ページ目に画像を 表示させたいと思っています。 XSLTは1ページ目を表示させるXSLT(page1.xsl)と、 2ページ目を表示させるXSLT(page2.xsl)を作成しました。 そこで、2ページ目を表示させる方法がわかりません。 2ページ目はリンクを使って表示させたいです。 JavaScript以外で何かよい方法を探しています。 アドバイス、よろしくお願いします。 | ||||
|
投稿日時: 2004-03-09 11:58
ども、ほむらです。
-------- チョップ氏へ とりあえず環境はどうなっていますか? JavaScriptを使用せずにクライアントサイドで 同じXML文書に異なるXSLTを関連付けることはできないと思います。 手段としては二つ、 1.サーバーサイドで変換する。 2.大元のXML文書とは別にXSLT1・XSLT2を別々に処理する空のXML文書を作って 大元のXML文書はXSLTの中でインポートする形。 僕が思い浮かぶのはこんなところでしょうか。 どちらにしても処理としては重いので要注意です。 #修正がてら追記 #あとはCGIでXSLTを出力という手もあるか。。。(ソースが見るの怖いけど(笑) [ メッセージ編集済み 編集者: ほむら 編集日時 2004-03-09 12:01 ] | ||||
|
投稿日時: 2004-03-09 12:30
大元のXMLにサーバーサイドでPIを挿入、という手はどうでしょうか?
| ||||
|
投稿日時: 2004-03-09 18:06
ほむらさん、Gordieさん、返信ありがとうございました。
すみません。書き忘れてました。 OS:Windows2000 ブラウザ:IE6.0 サーバーサイドで処理を行っています。 ほむらさん サーバーサイドで変換する場合、例えばこのようにXSLTを書くと、 ------------------page1.xsl--------------------------- <?xml version="1.0" encoding="EUC-JP"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/ 1999/XSL/Transform"> <xsl:output method="html" encoding="EUC-JP" /> <xsl:template match="/"> <html> <head> <title></title> </head> <body> <a href="xxxxx.xxx">画像表示</a> ↑ この部分をどのように指定すればいいのでしょうか? page2.xslと書くと変換されずそのまま表示されてしまいますし・・・。 例えば、「xxxxx.cgi」として何かCGIを指定して、そのCGIの中で2ページ目の XSLTと大元のXMLを関連付ける処理を行なったほうがよいのでしょうか? Gordieさん
PIというのはこの事でしょうか?↓ <?xml-stylesheet href="page2.xsl" type="text/xsl"?> 2ページ目に飛ぶリンクをクリックした時に、大元のXMLにこのPIを挿入する 処理を行って、XMLを参照するという事でしょうか?(間違っていたらすみません。) なるほど、そういう方法もありますね。もうしばらく考えてみます。 なにぶんXSLTをはじめて2週間ぐらいなので、見当違いの事を言っていると思いますが、 間違いを指摘していただけると幸いです。 [ メッセージ編集済み 編集者: チョップ 編集日時 2004-03-09 18:21 ] [ メッセージ編集済み 編集者: チョップ 編集日時 2004-03-09 18:30 ] | ||||
|
投稿日時: 2004-03-10 10:19
ども、ほむらです。
サーバーサイドの変換は僕もよくわかってないのですけど。 要するにXML文書にスタイルを直接指定するんじゃなくて MSXSLみたいな使い方をすればいいんじゃないかなということで。 CGIのほうは、QUERY_STRINGあたりでXSLTを選択する形にして XML文書を垂れ流す感じですね〜 XML文書でクエリデータを受け渡し(扱うこと)ができればいいんですけど。。。 聞いたことありませんし。 #XSLT内部でXML文書を読み込んだほうが無難っぽい(笑 #XPathのdocument関数を参照 | ||||
|
投稿日時: 2004-03-10 20:59
ほむらさん、ありがとうございます。
この方法で無難にできそうですね。 ほむらさんがおっしゃるように、空のXML文書を作って 大元のXML文書からdocument関数で読み込むようにしようと 思います。 ほむらさん、Gordieさん、ほんとにありがとうございました! |
1