XSL/XSLT
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/09/05 10:49ID:dYMWGvtU0030助けてー
02/01/23 00:59ID:aDpAhdJsApache+Jakarta-tomcat+cocoonです。。
0031名無しさん@お腹いっぱい。
02/01/23 01:19ID:???image/svg+xmlとして認識されていないのでは?
ていうか認識させられるのかしらん。
(namespaceの指定だけでどうにかできるのかな…ようわからん)
0032名無しさん@お腹いっぱい。
02/01/24 09:53ID:CFRaDXx6<xsl:template match="datalist">
<table>
<xsl:for-each select="data">
<tr>
<td>
<xsl:value-of seelct="position()"/>
</td>
<td>
<xsl:value-of seelct="."/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
うちのXSLTプロセッサだと >>21 みたいなのは怒られるんだけど
(<tr>と<xsl:if>が対応してないから)、大丈夫なのもあるのかな?
0033名無しさん@お腹いっぱい。
02/01/28 11:04ID:???> うちのXSLTプロセッサだと >>21 みたいなのは怒られるんだけど
> (<tr>と<xsl:if>が対応してないから)、大丈夫なのもあるのかな?
あるわけないよ。XMLじゃないもん、それ。
003430
02/01/29 08:17ID:UyexUS1timage/svg+xml指定してもだめでした。
なんどやってもAdobeのビューアーで表示できなかったんだけど
荒業でぬけることができました。
xml(+xslt→svg)をsmilのドキュメントに
<img src="target.xml">
という感じでうめこみRealPlayerでsmilを読み込ませると
svgが表示サレマした。うーん‥
0035名無しさん@お腹いっぱい。
02/02/02 23:39ID:KwUwsoRo0036名無しさん@お腹いっぱい。
02/02/21 18:16ID:a4ipQQMG<xsl:when test="...">
<xsl:variable name="foo" select="..."/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="foo" select="..."/>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$foo"/>
で、最後の行、fooなんて変数しらねえYO!と怒られるのが不満なのは漏れだけですか?
xsl:value-of 自体を場合わけすりゃいいのはわかりますけど、なんどもそういう
場合わけをしなければならない場合はウツなんですけども…。
みなさんどうしてるか教えてYO
0037名無しさん@お腹いっぱい。
02/02/21 18:19ID:a4ipQQMGテンプレート分けて xsl:when 内で xsl:call-template すりゃ済む話か…
逝ってきます…………
0038
02/03/08 18:28ID:EI/igJgKapache + tomcat + 横浜ベイキットCocoon にて XSL:FO 運用を目指してます。
フォント埋め込みになっちゃうんだけど、外字を表示させるにはどうしたらいいんでしょ。
0039nobodyさん
02/03/09 21:16ID:gH82xLKm横浜ベイキットCocoonってCocoon1のことかなぁ?
ApacheCocoon2なら少しは分かるかも知れんけど
そっちの話でもいい?
0040
02/03/11 09:34ID:ktAR11by本当は Cocoon1.82 の話がいいんですが
やり方わかれば Cocoon2 に移行しても問題ないですので
ご教授よろしくお願いします。
0041
02/03/14 14:42ID:U7MOt75j0042
02/03/16 12:29ID:aNCStdKB対応してるよん。
バージョン2.0.1の時点ではリクエストパラメータの処理に
問題がありますが、2.0.2で改善されます。
>>40
TTEditなんかで作ったフォントを
使いたいということでよろしいかな?
まずFOP単独で出力できないと話が進まないので
FOPの最新版バイナリを落してきてください。
http://xml.apache.org/dist/fop/#
004338
02/03/17 21:51ID:Xcs9LUc9まさしくその通りです<TTEdit
一応落として マバイットさんとこみたく インストールしてみました。
004438
02/03/17 21:54ID:Xcs9LUc9004542
02/03/19 07:45ID:Vm7v8Ppzすでに外字は作成済みですかな?
TTEditの外字作成機能で作ったものではなくて、
UNICODEのE000などの外字領域に直接フォントを作成した
ttfファイルが必要なのですが。
0046qqq<
02/03/19 08:43ID:???004738
02/03/19 09:55ID:ENr4RQ8PWindowsについてくるフォント(MSゴシックとか)だと
外字領域に直接フォント作れるけど
他の市販モノだと「・」となっていじれないんですよねぇ。
そういったプロテクトはずす方法知ってます?
004842
02/03/20 20:14ID:VQ4jw/To外字領域書き込み可能にしたTTEDITで
新規のフォントを作って、
そこに市販のフォントを一括コピーしたら
出来るかも知れんです。
とりあえず入手した
fop-0.20.3-bin.tar.gz
を適当な場所に解凍してください。
OSはLinuxでよいですか?
004938
02/03/22 00:11ID:nXgMXn31なるほど。
一応 fop解凍しました。
OS は TurboLinuxServer でっす。
005042
02/03/23 00:22ID:KjUoYuvr外字領域に文字を作ったフォントを用意しておいてください。
あとはFOPをインストールしたディレクトリ(fop.shがある場所)に
移動して
java -cp build/fop.sh:lib/xerces-1.2.3.jar org.apache.fop.fonts.apps.TTFReader フォントファイル 出力ファイル.xml
としてやります。
例えばフリーの東風ゴシックを流用して
x-kochi-gothic.ttfというファイルを作ったとします。
/usr/local/fopにfopがあり、
/usr/local/fop/jaにフォントファイルを置いた場合は
次のようにします。
cd /usr/local/fop
java -cp build/fop.jar:lib/xerces-1.2.3.jar org.apache.fop.fonts.apps.TTFReader ja/x-kochi-gothic.ttf ja/x-kochi-gothic.ttf.xml
とりあえず以上の方法で、ちゃんと出力ファイルが出来るか
試してみてください。
005138
02/03/25 11:23ID:XPZyIH2e説明ありがとうございます。
これで世間に顔向けできます。
005238
02/03/25 20:12ID:moXJH3iy(これがメトリクスファイル?)
が出力されました。
この後は如何に。。。
005342
02/03/27 06:14ID:7X2Z09vVさいです。メトリクスファイルです。
次にFOPの設定ファイルを作ります。
名前は何でもよいですが、例えば
/usr/local/fop/ja/config.xml
のようにするのがよいと思われます。
設定ファイルの内容は以下のようにします。
<configuration>
<fonts>
<font metrics-file="/usr/local/fop/ja/x-kochi-gothic.ttf.xml"
kerning="yes"
embed-file="/usr/local/fop/ja/x-kochi-gothic.ttf">
<font-triplet name="Gothic" style="normal" weight="normal"/>
</font>
</fonts>
</configuration>
この例はx-koichi-gothic.ttfをGothicというフォント名で使えるようにしてます。ttfとメトリクスの名前は実際につかうものに書き換えてください。
次回はいよいよPDFを出力します...
005438
02/03/27 17:54ID:MgQyiA49コピー&ペーストで設定ファイル作りました。
とうとうPDF出力ですか ニヤリ
005542
02/03/30 13:59ID:u2FWmlwuUNICODEで指定してやります。
例えばE000に文字を定義したならとします。
次のサンプルをsample.foという名前で保存してください。
で、あとは
./fop.sh -c 設定ファイル FOファイル PDFファイル
としてやればPDFが出てきます。
例えば
./fop.sh -c ja/config.xml sample.fo sample.pdf
として、出てきたPDFをWindowsのアクロバットリーダーで
開いたら、ちゃんと外字が出るはずです。
0056サンプルだよん
02/03/30 14:00ID:u2FWmlwu<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="simple"
page-height="29.7cm"
page-width="21cm"
margin-top="1cm"
margin-bottom="2cm"
margin-left="2.5cm"
margin-right="2.5cm">
<fo:region-body margin-top="3cm"/>
<fo:region-before extent="3cm"/>
<fo:region-after extent="1.5cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-name="simple">
<fo:flow flow-name="xsl-region-body">
<fo:block font-size="24pt"
font-family="Mincho">
外字だよん→
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
005742
02/03/30 14:03ID:u2FWmlwu外字だよん→・
の部分は
外字だよん→&#xE000
&はもちろん半角ね
です。
005838
02/04/02 19:43ID:W7Q/zpoW確かにPDF出力できました。
さて、次は Cocoon2 連携ですな。
005942
02/04/03 22:35ID:pbEHoyE1Cocoonのバグのためにフォントが設定できませんでした。
今、修正版を準備してます。
明日にでもうpするので、しばし待ってください。
0060あぼーん
NGNG006142
02/04/04 21:42ID:b//D81ae下の物を落としてきてください
http://218.130.228.56:4040/c2.tgz
006238
02/04/05 09:34ID:gSye2Xnn単に解凍すればいいのかな?
006342
02/04/06 14:30ID:XfqBDhEmまだ入れてなければJDK1.4とTomcat4.0.3LEを
入れておいてください。
006438
02/04/06 21:21ID:ECdvWQTo了解しました。
0065nobodyさん
02/04/06 22:21ID:p5+bp4EQCocoon2のソース取って来てビルドかけても
ビルド通らないんで、妥協してJDK1.3使ってるんですが。
006642
02/04/07 09:11ID:aptyKfg7http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/bin/jakarta-tomcat-4.0.3-LE-jdk14.tar.gz
Cocoonはバイナリ版でも動きました。
tomcatを/usr/localあたりに解凍して、
c2.tgzを展開したら出てくるc2フォルダを
tomcatのwebappフォルダの中に置いてください。
さらに、c2/WEB-INF/lib/batik-all-1.5b1.jarを
tomcatのcommon/libにコピーしてください
tomcatの起動はXWindow内でするか、
Xvfb使ってください。
これでhttp://localhost:8080/c2/
にアクセスできるはずです。
006765
02/04/10 21:49ID:???LE板じゃないtomcat使ってたのが動かない原因でした。
失礼しました。
006838
02/04/16 13:13ID:BXQRKCQc最後の最後でとがっかりしてましたが、ブラウザで
見たら、最終動作確認まで書き込みされていてほっとしました。
早速試してみます。
0069nobodyさん
02/04/19 00:59ID:CkxCgoEa仕様から廃止しろ
0070
02/04/23 22:43ID:CN3t/tuaapache1.24 + tomcat3.2.4 + cocoon2.0.2 の
インストールがうまくいかん!
どうして tomcat 立ち上げると core 吐いて落ちるんじゃー
0071
02/04/23 22:44ID:CN3t/tua× 1.24
○ 1.3.24
0072nobodyさん
02/05/22 16:48ID:???SQLだと、
select foo, bar from tee order by foo, bar
というように書けますけど、XSLTだと可能なのでしょうか?
007372
02/05/24 12:47ID:???<xsl:sort select="foo"/>
<xsl:sort select="bar"/>
でできました。
0074Name_Not_Found
02/05/29 14:44ID:FW6HquNDXSLT は XTransform とかに改名すれ
0075non
02/05/29 15:16ID:8Y6vpIWK設定方法、設定ファイル等
教えてください。
0076tachan
02/05/30 17:53ID:2EIuRR3Fここで自分で作成したCLASSにCLASSPATHを通すには
どうしたらよいのでしょうか?
XSPのコンパイルの時点でjava.lang.NoClassDefFoundError
となります。
sitemap.xmapなのかcocoon.xconfなのかわかりません。
0077nobodyさん
02/05/30 18:29ID:???こちらでは問題ないがOSは何だ? あとGeneratorやTransformerは
何を使ってるんだ?
>>76
/Tomcat/webapps/cocoon/WEB-INF/classesに置くのは駄目なのか?
007877
02/05/30 18:33ID:???http://www.emergence.jp/mail-archive/ci/index.cgi?mss:54:200205:dmoeikbhogokbpdjofji
ではどうだ?
0079nobodyさん
02/05/31 02:56ID:HNPPjz0jこの本はどうですか?
値段が高いので迷っています。
0080non
02/05/31 10:08ID:XfZ+NB0uOSは、Redhat7.2です。
Generator,Transformerについては、
勉強不足で知らないのですが、
sitemap.xmapの内容でしたら、
Generator:JspGenerator
Transformer:TraxTransformer
となっております。
見当違いでしたらすいません。
0081nobodyさん
02/05/31 10:15ID:???JSPを使っているのであれば、単純に普通のTomcatでそのJSPファイルを
指定したときに、文字化けは起こってないか? JSPの中でのエンコーディングの
指定がまずいような気がするが。
もし上記でJSPファイルの問題でないのなら、普通にXMLファイルを作ってみて、
SitemapでFileGeneratorに指定してあげてそちらだと文字化けが起こるかどうかを
確認してみてくれ。
それと、そもそも文字化けを確認しているブラウザもRedhat上かな?
0082nobodyさん
02/06/01 23:15ID:???TOMCAT_HOME/webapps/cocoon/WEB-INF/web.xml
を触ればよい。
<init-param>
<param-name>extra-classpath</param-name>
<param-value>ここで指定する</param-value>
</init-param>
0083tachan
02/06/03 14:25ID:Yq6AJPGD>を触ればよい。
><init-param>
><param-name>extra-classpath</param-name>
><param-value>ここで指定する</param-value>
></init-param>
上記の設定ファイルを指定したら
XSPのコンパイルエラーなくなりました。
本当にありがとうございました。
0084あぼーん
NGNG0085>
02/06/06 13:34ID:CeCgqXVC試してもいない21のコードに
9も試してもいないのに感謝する必要はない。
で,結局
</tr><tr>
は,
<xsl:text disable-output-escaping="yes"></tr><tr></xsl:text>
とすればOK。
008685
02/06/06 13:38ID:CeCgqXVCめんどいから全角で書くよ。
85のは
<xsl:text disable-output-escaping="yes">&lt;/tr&gt;&lt;tr&gt;</xsl:text>
ということね。
0087nobodyさん
02/06/09 17:09ID:???0088nobodyさん
02/06/11 00:22ID:qDeG/JWsPerl使ってるんならこことか見てみたらどうかな。
http://www-6.ibm.com/jp/developerworks/xml/j_perl-xml-toolkit.html
0089nobodyさん
02/06/14 16:06ID:???<element name="tr" />
ではあかんか?
0090nobodyさん
02/06/15 00:30ID:???<xsl:template match="/">
<table>
<xsl:for-each select="datalist/data">
<xsl:if test="position() mod 3 = 1">
<tr>
<xsl:for-each select=".|following-sibling::data[position() < 3]">
<td><xsl:value-of select="."/></td>
</xsl:for-each>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</xsl:template>
0091nobodyさん
02/06/26 11:32ID:GX1WMLoK<xsl:sort select="a" data-type="text" order="ascending" />
</xsl:apply-templates>
でソートした結果をテンプレート処理しているのですが、
<xsl:template match="foo">
この中で処理される「foo」の前に処理された
「foo」の子要素を参照する事はできないのでしょうか?
<xsl:template>
アドバイスいただけませんでしょうか。
0092nobodyさん
02/06/26 15:12ID:kyxI2iEYとかじゃだめなの。
というかもう少し具体的に。
0093nobodyさん
02/06/26 15:34ID:6FYKwyrEみんなメルマガ読んでる?
あれ読むとひろゆきの性格よくわかるよ
すっごい陰湿。
根暗。
正直、引くよ。2chの管理人って、こういう奴なのかって。
176:参加するカモさん :02/03/12 11:18
ひろゆきの裁判の報告の仕方はよくわかったけど、たまには相手側の言い分も聞いてみたいね
まったく違う状況だったりしてw
177:参加するカモさん :02/03/12 11:42
ひろゆきさんっては自分の都合の良いことしか報告しないし、都合が悪くなると
報告しなくなっちゃうんだよね、、
それにしてもひろゆきさんてば見事に陰湿な文章書くなあ。。
0094nobodyさん
02/06/26 15:51ID:GX1WMLoKうまく質問できていないみたいですいません。
<doc>
<foo>
<a>あ</a>
<b>111<b>
</foo>
<foo>
<a>あ</a>
<b>123<b>
</foo>
<foo>
<a>い</a>
<b>324<b>
</foo>
・
・
・
</doc>
というようなXMLをXSLでHTML変換する際に
foo/aの値でfooをソートして出力します。
その際aの値が「あ」から「い」に変わる時だけ
例えば<hr>を挿入したいと思っています。
使用しているのはIE6です。
ちょっとまだ良く分かってないところが多いので
うまく説明できてないかもしれませんが。
先ほど教えていただいた
<xsl:value-of select="preceding-sibling::foo[1]/a"/>
はエラーになってしまいます。(エラー自体が文字化け)
長くなってすいません。
009592
02/06/26 18:05ID:vhsxGiH5<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:key name="group" match="doc/foo" use="a" />
<xsl:template match="/">
<html><body><xsl:apply-templates/></body></html>
</xsl:template>
<xsl:template match="doc">
<xsl:for-each select="foo[count(. | key('group', a)[1]) = 1]">
<xsl:sort select="a" data-type="text" order="ascending"/>
<xsl:for-each select="key('group', a)">
<xsl:value-of select="a" />
<xsl:value-of select="b" />
<br />
</xsl:for-each>
<hr/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
009694
02/06/26 19:29ID:???そのままコピペしてテストしてみましたが、
foo[count(. | key('group', a)[1]) = 1]
でエラーがでてしまいました。
<xsl:for-each select="foo">
だとkey()で取得したノードリストが、複数でてしまいますし。
xsl:keyとkey関数を知らなかったので勉強になりました。
ちょっとこのアドバイスを元に考えてみます。
ほんとにありがとうございます!
0097結局さぁ
02/06/27 00:28ID:kFFjIjuvとっとと改名しる!
0098nobodyさん
02/07/03 10:46ID:???0099nobodyさん
02/07/03 19:07ID:P21eikikXSPの出力エンコーディング設定ってどこですればいいんでしょうか?
0100Cocoon2
02/07/03 19:07ID:P21eikikXSPの出力エンコーディング設定ってどこですればいいんでしょうか?
0101nobodyさん
02/07/04 23:36ID:QxzpOV1bどーにもこーにもうまくいきません.
<xsl:template match="@*|node()" priority="2">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
としておいて、例えば要素fooだけはそのままコピーするのではなく
<xsl:template match="foo" priority="1">
<xsl:text>foo</xsl:text>
</xsl:template>
このtemplateが適用されて欲しいのですが、priority属性が効いてくれないみたいです。
というか根本的に考え方が違うのかもしれません。
最初のtemplate中で<xsl:when test="name()='foo'">を使って分岐させれば
うまく(意図通りに)いくのですが、どうもスマートでないような気がします。
濃ゆいスレにそぐわない質問かもしれませんが、
よい方法があれば教えてください。
あ、環境はxalan+jdk1.3.0です。
0102nobodyさん
02/07/05 01:35ID:???ここ見れ↓
http://www.emergence.jp/mail-archive/ci/index.cgi?mss:54:200205:dmoeikbhogokbpdjofji
0103Cocoon2
02/07/05 10:46ID:o63MT+vEまじで感謝!
0104Spm
02/07/06 00:35ID:zVcgsDeCそりゃあ、priority属性の値の高いほうが優先してマッチしますから、
その例の下のテンプレートは適用されないに決まっているのですけど:
>どーにもこーにもうまくいきません
とのことですので、もちろん最初は、priority属性をつけないで
試しては見たのでしょう?
下のテンプレートの方が規則からいって優先度が高いのは自明ですし……
xalanてそんなものですか。いやXTから乗り換えようと思っていたので。
0105101
02/07/06 02:17ID:vHzD1DJGすいません,書いた後に気付きました...
priority の値を逆にしてもやはり意図通りになりません.
もちろん,仰るとおり,より限定されているfoo要素の方が
優先順位が高いのは自明なのですが,苦肉の策で試してみました.
<xsl:template match="*" prioriry="0"> と
<xsl:template match="*" prioriry="1"> では
後者が確実に適用さますが,match の内容が異なるとダメみたいですね...
ちなみにXTでも試してみたのですが,xalanと挙動は同じでした.
むぅ.
0106101
02/07/06 02:20ID:???です
0107Spm
02/07/06 20:49ID:zVcgsDeC当方のXTはきちんとfoo要素だけfooというテキストノードにしてくれてます。
priority属性もみてくれてますし。
これはxalanのせいじゃないかもしれないですね。
考えられるのは、qname(qualified name)が間違っていることくらいでしょうか。
マッチすらしてないって事です。
ソース文書のfoo要素に名前空間ついてませんか?
ルート要素にデフォルトの名前空間(xmlns="uri")つけてませんか?
名前空間を除いたものを返すからname()関数による分岐はうまくいくのでしょう。
これしか考えられないのですが、違ってたらすみません。
0108nobodyさん
02/07/07 00:44ID:wYb8dbIP>ソース文書のfoo要素に名前空間ついてませんか?
>ルート要素にデフォルトの名前空間(xmlns="uri")つけてませんか?
う,ビンゴです...
デフォルトの名前空間指定のないxml文書なら xalan でもうまくいきました.
ちなみに,デフォルトの名前空間がある場合にマッチさせる手段はあるのでしょうか?
match=":foo" なんて安直な方法じゃダメでした(恥)
# 「デフォルトの名前空間に関する問題は XSLT 2.0 で解決される」
# と聞いたことがあります.
0109Spm
02/07/07 03:49ID:ZDF4GXlm(一般的にデフォルト名前空間が使われる)
XHTMLだったとすれば:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xht="http://www.w3.org/1999/xhtml"
>
と、名前空間接頭辞を定義して、
NodeTestでNameTestを使う際、その接頭辞をくっつけます。
<xsl:template match="child::xht:h1">
リテラルなど
</xsl:template>
これはカレントノードがh1要素だった場合にマッチするでしょう。
# default-xpath-namespace属性っていうものらしいですね。
# http://www.w3.org/TR/xslt20/#unprefixed-qnames より
0110108
02/07/07 16:47ID:wYb8dbIPもう目からウロコです.
ばっちりです,助かりました.
ありがとうございました.
0111nobodyさん
02/08/11 23:48ID:77b+zq0zもう使用しないことにした。
0112nobodyさん
02/08/16 08:50ID:q4PLH8KOhttp://www.cityfujisawa.ne.jp/~yanai/xml/sample2/basic1/home.html
ここを改造してソースを作っているのですが、うまくいきません。
とりあえず三つのソースを作りました。
-- test4.html --
<html>
<head>
<title>test4</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<xml id="list" src="testxml.xml"></xml>
<xml id="c1" src="c1.xsl"></xml>
<script language="JavaScript">
<!--
function inner() {
here.innerHTML = list.transformNode(c1.documentElement);
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form>
<input type="button" value="c1" onClick="inner()">
</form>
<div id="here"></div>
</body>
</html>
0113112のつづき
02/08/16 08:50ID:q4PLH8KO<?xml version="1.0" encoding="Shift_JIS" ?>
<test>mod</test>
-- c1.xsl --
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<p>before<xsl:value-of select="test@pid" />after</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
ここでtest4.htmlをクリックして
beforemodafter
と表示させれば成功なのですが、beforeafterとしか表示されません。
「たのしいXML」のソースを極めて胆略化した形で作ったのですが、うまく動かないのです。
どこが原因なのでしょうか。教えてください。
0114112
02/08/16 11:12ID:???ちょっと訂正
誤
<p>before<xsl:value-of select="test@pid" />after</p>
正
<p>before<xsl:value-of select="test" />after</p>
0115Spm
02/08/16 14:52ID:WjrAiya2<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
これで駄目ならスレ違い。MSXMLの話題になります。
0117112
02/08/21 04:32ID:???115さんの Version の記述忘れもそうなんですが、xmlns をxmlns:xsl="http://www.w3.org/1999/XSL/Transform にしてました。
つまり、僕が作る場合、閲覧者をIE5.0のXMLパーサー無しの環境で見てるのを前提に作らなきゃいけないので、自分のパソコンを同じ環境にしてあります。
で、
xmlns:xsl="http://www.w3.org/TR/WD-xsl”
としたら表示できました。
0118K's
02/08/30 14:43ID:mcp2WYS4下記にサンプルプログラムがありますが実際コピペして表示させたのですが
まったく表示されず、またエラーも出ません。sortの使い方教えていただけない
でしょうか。ちなみにIE5.0を使用しています。また使い方が間違えてるようでしたら
指摘ください。
「XML文書」
<?xml version="1.0" encoding="UTF-8"?>
<?xml:stylesheet type="text/xsl" href="sort.xsl"?>
<kakaku id="kakaku">
<title price="1500">ガイドブック</title>
<title price="2000">XML</title>
<title price="900">会社案内</title>
<title price="800">デジカメ</title>
<title price="1000">インターネット</title>
</kakaku>
「xsl文書」(BODY要素内のみ記述です)
<xsl:for-each select="kakaku">
<h2>価格詳細表</h2>
<table border="2px"><xsl:apply-templates match="title" /></table>
</xsl:for-each>
<xsl:for-each select="title">
<xsl:sort select="./@price" lang="UTF-8" data-type="number" order="ascending" />
<tr><td><xsl:value-of select="./@price" />(税別)円</td><td><xsl:value-of select="." /></td></tr>
</xsl:for-each>
0119nobodyさん
02/08/30 16:57ID:???<xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">がなぜ?
というのは置いといて、恐らく
select="./@price"
は
select="@price"
ではないかと。下のvalue-ofも。
も一つ考えられるのは、>>118のmsxml.dllが古くて、XSLTの名前空間がドラフトなのではないか?と
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
でなくて
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
ってなってない?
だとするとソートは、
<xsl:for-each select="title" order-by="number(@price)">
と書けば上手くいくはず。
0120Spm
02/08/30 21:56ID:???RelativeLocationPath ::= Step
| RelativeLocationPath '/' Step | AbbreviatedRelativeLocationPath
かつ、
Step ::= AxisSpecifier NodeTest Predicate* | AbbreviatedStep
かつ、
AbbreviatedStep ::= '.' | '..'
[参照] http://www.w3.org/TR/xpath
というわけで、./@price は合法のようです。
> <xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">がなぜ?
どこから>>118がこのサンプルを持ってきたのか気になりますな。
0122K's
02/09/03 09:47ID:UYWG+Uf9使用できないもので。。。
で、教えていただいた通りにやってみたのですがやはり表示されません。
それとこのサンプルは今となってはわかりませんがどっかのHPから
コピペしてきたものです。
<xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">
書いたのはapply-templates match="title" いかにfor-each select="title"を
適用すると解釈しているのですが。。。間違ってます?
0123nobodyさん
02/09/03 12:03ID:???んー。テンプレート系エレメントについてもう少し勉強した方がいいかも。
sortの使い方云々よりもxsl文書が正しく書けていないと思う。
もっとXSLTの各エレメントの意味をよく理解しましょう。
0124nobodyさん
02/09/04 23:35ID:???あんなアフォどもに好き勝手にさせてて委員会?
0125nobodyさん
02/09/06 01:19ID:ultmv2D3<?xml:stylesheet じゃなく <?xml-stylesheet だよ。こっちはハイフン。
0127bloom
02/09/06 23:31ID:PkazN1aJhttp://www.leverage.jp/bloom/start/
0128nobodyさん
02/09/06 23:48ID:???なんかrefreshとか書いたMETAタグしかない小さなソースだけど、
ブラクラか何か?
■ このスレッドは過去ログ倉庫に格納されています