XSL/XSLT (558レス)
1-

46
(1): qqq< 02/03/19 08:43 ID:??? AAS
asd
47
(1): 38 02/03/19 09:55 ID:ENr4RQ8P(1) AAS
TTEditの質問になってしまうかもしれないのですが
Windowsについてくるフォント(MSゴシックとか)だと
外字領域に直接フォント作れるけど
他の市販モノだと「・」となっていじれないんですよねぇ。
そういったプロテクトはずす方法知ってます?
48
(1): 42 02/03/20 20:14 ID:VQ4jw/To(1) AAS
>>47
外字領域書き込み可能にしたTTEDITで
新規のフォントを作って、
そこに市販のフォントを一括コピーしたら
出来るかも知れんです。

とりあえず入手した
fop-0.20.3-bin.tar.gz
を適当な場所に解凍してください。
OSはLinuxでよいですか?
49
(1): 38 02/03/22 00:11 ID:nXgMXn31(1) AAS
>>48
なるほど。
一応 fop解凍しました。
OS は TurboLinuxServer でっす。
50
(1): 42 02/03/23 00:22 ID:KjUoYuvr(1) AAS
>>49
外字領域に文字を作ったフォントを用意しておいてください。
あとは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

とりあえず以上の方法で、ちゃんと出力ファイルが出来るか
試してみてください。
51: 38 02/03/25 11:23 ID:XPZyIH2e(1) AAS
うおー出た出たすげー。
説明ありがとうございます。
これで世間に顔向けできます。
52
(1): 38 02/03/25 20:12 ID:moXJH3iy(1) AAS
というわけで、一応出力ファイル
(これがメトリクスファイル?)
が出力されました。

この後は如何に。。。
53: 42 02/03/27 06:14 ID:7X2Z09vV(1) AAS
>>52
さいです。メトリクスファイルです。

次に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を出力します...
54: 38 02/03/27 17:54 ID:MgQyiA49(1) AAS
なるほろ。
コピー&ペーストで設定ファイル作りました。

とうとうPDF出力ですか ニヤリ
55: 42 02/03/30 13:59 ID:u2FWmlwu(1/3) AAS
XSL-FOに外字を埋め込む時は、&#を使って文字コードを
UNICODEで指定してやります。
例えばE000に文字を定義したならとします。
次のサンプルをsample.foという名前で保存してください。

で、あとは
./fop.sh -c 設定ファイル FOファイル PDFファイル
としてやればPDFが出てきます。

例えば
./fop.sh -c ja/config.xml sample.fo sample.pdf
として、出てきたPDFをWindowsのアクロバットリーダーで
開いたら、ちゃんと外字が出るはずです。
56: サンプルだよん 02/03/30 14:00 ID:u2FWmlwu(2/3) AAS
<?xml version="1.0" encoding="EUC-JP"?>

<fo:root xmlns:fo="外部リンク:www.w3.org">
<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>
57: 42 02/03/30 14:03 ID:u2FWmlwu(3/3) AAS
2chだと勝手に文字が変換されるようですな。

外字だよん→・

の部分は

外字だよん→&#xE000

&はもちろん半角ね
です。
58: 38 02/04/02 19:43 ID:W7Q/zpoW(1) AAS
おーおー
確かにPDF出力できました。

さて、次は Cocoon2 連携ですな。
59: 42 02/04/03 22:35 ID:pbEHoyE1(1) AAS
3/25にリリースされたCocoon2.0.2を試してみましたが、
Cocoonのバグのためにフォントが設定できませんでした。

今、修正版を準備してます。
明日にでもうpするので、しばし待ってください。
60: あぼーん [あぼーん] AAS
あぼーん
61: 42 02/04/04 21:42 ID:b//D81ae(1) AAS
とりあえずうpしたので
下の物を落としてきてください
外部リンク[tgz]:218.130.228.56:4040
62: 38 02/04/05 09:34 ID:gSye2Xnn(1) AAS
落とすは落としました。
単に解凍すればいいのかな?
63: 42 02/04/06 14:30 ID:XfqBDhEm(1) AAS
とりあえず、
まだ入れてなければJDK1.4とTomcat4.0.3LEを
入れておいてください。
64: 38 02/04/06 21:21 ID:ECdvWQTo(1) AAS
tomcat は 3.x ではなく 4.x なんですね。
了解しました。
65
(1): 02/04/06 22:21 ID:p5+bp4EQ(1) AAS
JDK1.4でCocoon2を使えますか?
Cocoon2のソース取って来てビルドかけても
ビルド通らないんで、妥協してJDK1.3使ってるんですが。
66: 42 02/04/07 09:11 ID:aptyKfg7(1) AAS
以下のJDK1.4対応版Tomcatで動作を確認してます。
外部リンク[gz]:jakarta.apache.org
Cocoonはバイナリ版でも動きました。

tomcatを/usr/localあたりに解凍して、
c2.tgzを展開したら出てくるc2フォルダを
tomcatのwebappフォルダの中に置いてください。
さらに、c2/WEB-INF/lib/batik-all-1.5b1.jarを
tomcatのcommon/libにコピーしてください
tomcatの起動はXWindow内でするか、
Xvfb使ってください。
これで外部リンク:localhost:8080
にアクセスできるはずです。
67: 65 02/04/10 21:49 ID:??? AAS
どうも、65です。
LE板じゃないtomcat使ってたのが動かない原因でした。
失礼しました。
68: 38 02/04/16 13:13 ID:BXQRKCQc(1) AAS
かちゅ〜しゃであぼーんされたと表示されたので
最後の最後でとがっかりしてましたが、ブラウザで
見たら、最終動作確認まで書き込みされていてほっとしました。

早速試してみます。
69: 02/04/19 00:59 ID:CkxCgoEa(1) AAS
中途半端な手続き言語XSLTはいらん
仕様から廃止しろ
70: 02/04/23 22:43 ID:CN3t/tua(1/2) AAS
ってか、
apache1.24 + tomcat3.2.4 + cocoon2.0.2 の
インストールがうまくいかん!

どうして tomcat 立ち上げると core 吐いて落ちるんじゃー
71: 02/04/23 22:44 ID:CN3t/tua(2/2) AAS
↑いやん
× 1.24
○ 1.3.24
72
(1): 02/05/22 16:48 ID:??? AAS
XSLTで複数のキーについてソートしたい場合はどうすればいいのでしょうか?

SQLだと、
select foo, bar from tee order by foo, bar
というように書けますけど、XSLTだと可能なのでしょうか?
73: 72 02/05/24 12:47 ID:??? AAS
>72
<xsl:sort select="foo"/>
<xsl:sort select="bar"/>
でできました。
74: Name_Not_Found 02/05/29 14:44 ID:FW6HquND(1) AAS
もういいかげん、XSL と XSLT をいっしょに扱うことに無理がある

XSLT は XTransform とかに改名すれ
75
(2): non 02/05/29 15:16 ID:8Y6vpIWK(1) AAS
COCOON2にて日本語を利用可にする
設定方法、設定ファイル等
教えてください。
76
(2): tachan 02/05/30 17:53 ID:2EIuRR3F(1) AAS
COCOON2にてXSPを利用しようと思います。

ここで自分で作成したCLASSにCLASSPATHを通すには
どうしたらよいのでしょうか?

XSPのコンパイルの時点でjava.lang.NoClassDefFoundError
となります。

sitemap.xmapなのかcocoon.xconfなのかわかりません。
77
(2): 02/05/30 18:29 ID:??? AAS
>>75
こちらでは問題ないがOSは何だ? あとGeneratorやTransformerは
何を使ってるんだ?

>>76
/Tomcat/webapps/cocoon/WEB-INF/classesに置くのは駄目なのか?
78: 77 02/05/30 18:33 ID:??? AAS
>>75
外部リンク[cgi]:www.emergence.jp
ではどうだ?
79: 02/05/31 02:56 ID:HNPPjz0j(1) AAS
外部リンク[html]:www.ascii.co.jp
この本はどうですか?
値段が高いので迷っています。
80
(2): non 02/05/31 10:08 ID:XfZ+NB0u(1) AAS
勉強不足ですいません。
OSは、Redhat7.2です。

Generator,Transformerについては、
勉強不足で知らないのですが、
sitemap.xmapの内容でしたら、

Generator:JspGenerator
Transformer:TraxTransformer

となっております。
見当違いでしたらすいません。
81: 02/05/31 10:15 ID:??? AAS
>>80
JSPを使っているのであれば、単純に普通のTomcatでそのJSPファイルを
指定したときに、文字化けは起こってないか? JSPの中でのエンコーディングの
指定がまずいような気がするが。

もし上記でJSPファイルの問題でないのなら、普通にXMLファイルを作ってみて、
SitemapでFileGeneratorに指定してあげてそちらだと文字化けが起こるかどうかを
確認してみてくれ。

それと、そもそも文字化けを確認しているブラウザもRedhat上かな?
82: 02/06/01 23:15 ID:??? AAS
>>76
TOMCAT_HOME/webapps/cocoon/WEB-INF/web.xml
を触ればよい。

<init-param>
<param-name>extra-classpath</param-name>
<param-value>ここで指定する</param-value>
</init-param>
83: tachan 02/06/03 14:25 ID:Yq6AJPGD(1) AAS
>TOMCAT_HOME/webapps/cocoon/WEB-INF/web.xml
>を触ればよい。
><init-param>
><param-name>extra-classpath</param-name>
><param-value>ここで指定する</param-value>
></init-param>

上記の設定ファイルを指定したら
XSPのコンパイルエラーなくなりました。

本当にありがとうございました。
84: あぼーん [あぼーん] AAS
あぼーん
85
(1): > 02/06/06 13:34 ID:CeCgqXVC(1/2) AAS
21は33の言うとおり。
試してもいない21のコードに
9も試してもいないのに感謝する必要はない。

で,結局
</tr><tr>
は,
<xsl:text disable-output-escaping="yes"></tr><tr></xsl:text>
とすればOK。
86
(1): 85 02/06/06 13:38 ID:CeCgqXVC(2/2) AAS
ちぇっ,展開されちった。
めんどいから全角で書くよ。
85のは
<xsl:text disable-output-escaping="yes">&lt;/tr&gt;&lt;tr&gt;</xsl:text>
ということね。
87
(1): [0] 02/06/09 17:09 ID:??? AAS
普通のレンタルサーバとかでサーバサイドのXSLT変換ってできる?
88: 02/06/11 00:22 ID:qDeG/JWs(1) AAS
>>87
Perl使ってるんならこことか見てみたらどうかな。
外部リンク[html]:www-6.ibm.com
89: 02/06/14 16:06 ID:??? AAS
>86
<element name="tr" />
ではあかんか?
90: 02/06/15 00:30 ID:??? AAS
>>9
<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() &lt; 3]">
<td><xsl:value-of select="."/></td>
</xsl:for-each>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</xsl:template>
91: 02/06/26 11:32 ID:GX1WMLoK(1/2) AAS
<xsl:apply-templates select="foo">
<xsl:sort select="a" data-type="text" order="ascending" />
</xsl:apply-templates>

でソートした結果をテンプレート処理しているのですが、

<xsl:template match="foo">

この中で処理される「foo」の前に処理された
「foo」の子要素を参照する事はできないのでしょうか?

<xsl:template>

アドバイスいただけませんでしょうか。
92
(2): 02/06/26 15:12 ID:kyxI2iEY(1) AAS
<xsl:value-of select="preceding-sibling::foo[1]/a"/>
とかじゃだめなの。
というかもう少し具体的に。
93: 02/06/26 15:34 ID:6FYKwyrE(1) AAS
173 :参加するカモさん :02/03/12 09:46
みんなメルマガ読んでる?
あれ読むとひろゆきの性格よくわかるよ
すっごい陰湿。
根暗。
正直、引くよ。2chの管理人って、こういう奴なのかって。

176:参加するカモさん :02/03/12 11:18
ひろゆきの裁判の報告の仕方はよくわかったけど、たまには相手側の言い分も聞いてみたいね
まったく違う状況だったりしてw

177:参加するカモさん :02/03/12 11:42
ひろゆきさんっては自分の都合の良いことしか報告しないし、都合が悪くなると
報告しなくなっちゃうんだよね、、
それにしてもひろゆきさんてば見事に陰湿な文章書くなあ。。
94
(1): 02/06/26 15:51 ID:GX1WMLoK(2/2) AAS
>>92
うまく質問できていないみたいですいません。

<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"/>

はエラーになってしまいます。(エラー自体が文字化け)
長くなってすいません。
95: 92 02/06/26 18:05 ID:vhsxGiH5(1) AAS
こうかな、、

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="外部リンク:www.w3.org" 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>
96: 94 02/06/26 19:29 ID:??? AAS
アドバイスありがとうございます。

そのままコピペしてテストしてみましたが、
foo[count(. | key('group', a)[1]) = 1]
でエラーがでてしまいました。

<xsl:for-each select="foo">
だとkey()で取得したノードリストが、複数でてしまいますし。

xsl:keyとkey関数を知らなかったので勉強になりました。
ちょっとこのアドバイスを元に考えてみます。
ほんとにありがとうございます!
97: 結局さぁ 02/06/27 00:28 ID:kFFjIjuv(1) AAS
XSLTってXSLの鬼っ子でしょ?
とっとと改名しる!
98: 02/07/03 10:46 ID:??? AAS
なんだか難しそうだな
99
(1): 02/07/03 19:07 ID:P21eikik(1/2) AAS
Cocoon2でXSPを使ってHTMLを出力するとなぜか文字化けしちゃう。
XSPの出力エンコーディング設定ってどこですればいいんでしょうか?
100
(3): Cocoon2 02/07/03 19:07 ID:P21eikik(2/2) AAS
Cocoon2でXSPを使ってHTMLを出力するとなぜか文字化けしちゃう。
XSPの出力エンコーディング設定ってどこですればいいんでしょうか?
101
(3): 02/07/04 23:36 ID:QxzpOV1b(1) AAS
あるxml文書をコピーする過程で、決まった要素にだけtemplateを適用したいのですが
どーにもこーにもうまくいきません.

<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です。
102
(1): 02/07/05 01:35 ID:??? AAS
>>100
ここ見れ↓
外部リンク[cgi]:www.emergence.jp
103: Cocoon2 02/07/05 10:46 ID:o63MT+vE(1) AAS
>>102
まじで感謝!
104
(1): Spm 02/07/06 00:35 ID:zVcgsDeC(1/2) AAS
>>101

そりゃあ、priority属性の値の高いほうが優先してマッチしますから、
その例の下のテンプレートは適用されないに決まっているのですけど:

>どーにもこーにもうまくいきません

とのことですので、もちろん最初は、priority属性をつけないで
試しては見たのでしょう?
下のテンプレートの方が規則からいって優先度が高いのは自明ですし……

xalanてそんなものですか。いやXTから乗り換えようと思っていたので。
105: 101 02/07/06 02:17 ID:vHzD1DJG(1) AAS
>>104
すいません,書いた後に気付きました...
priority の値を逆にしてもやはり意図通りになりません.

もちろん,仰るとおり,より限定されているfoo要素の方が
優先順位が高いのは自明なのですが,苦肉の策で試してみました.

<xsl:template match="*" prioriry="0"> と
<xsl:template match="*" prioriry="1"> では
後者が確実に適用さますが,match の内容が異なるとダメみたいですね...

ちなみにXTでも試してみたのですが,xalanと挙動は同じでした.
むぅ.
106
(1): 101 02/07/06 02:20 ID:??? AAS
s/prioriry/priority/g
です
107
(1): Spm 02/07/06 20:49 ID:zVcgsDeC(2/2) AAS
>>106
当方のXTはきちんとfoo要素だけfooというテキストノードにしてくれてます。
priority属性もみてくれてますし。
これはxalanのせいじゃないかもしれないですね。

考えられるのは、qname(qualified name)が間違っていることくらいでしょうか。
マッチすらしてないって事です。
ソース文書のfoo要素に名前空間ついてませんか?
ルート要素にデフォルトの名前空間(xmlns="uri")つけてませんか?

名前空間を除いたものを返すからname()関数による分岐はうまくいくのでしょう。

これしか考えられないのですが、違ってたらすみません。
108
(1): 02/07/07 00:44 ID:wYb8dbIP(1/2) AAS
>>107
>ソース文書のfoo要素に名前空間ついてませんか?
>ルート要素にデフォルトの名前空間(xmlns="uri")つけてませんか?

う,ビンゴです...
デフォルトの名前空間指定のないxml文書なら xalan でもうまくいきました.

ちなみに,デフォルトの名前空間がある場合にマッチさせる手段はあるのでしょうか?
match=":foo" なんて安直な方法じゃダメでした(恥)

# 「デフォルトの名前空間に関する問題は XSLT 2.0 で解決される」
# と聞いたことがあります.
109
(1): Spm 02/07/07 03:49 ID:ZDF4GXlm(1) AAS
ソースファイルが
(一般的にデフォルト名前空間が使われる)
XHTMLだったとすれば:

<xsl:stylesheet
xmlns:xsl="外部リンク:www.w3.org"
xmlns:xht="外部リンク:www.w3.org"
>
と、名前空間接頭辞を定義して、
NodeTestでNameTestを使う際、その接頭辞をくっつけます。

<xsl:template match="child::xht:h1">
リテラルなど
</xsl:template>

これはカレントノードがh1要素だった場合にマッチするでしょう。

# default-xpath-namespace属性っていうものらしいですね。
# 外部リンク:www.w3.org より
110: 108 02/07/07 16:47 ID:wYb8dbIP(2/2) AAS
>>109
もう目からウロコです.
ばっちりです,助かりました.
ありがとうございました.
111
(1): 02/08/11 23:48 ID:77b+zq0z(1) AAS
XSLTは変数の値変更できなくて不便でしょうがないので、
もう使用しないことにした。
112
(3): 02/08/16 08:50 ID:q4PLH8KO(1/2) AAS
初めてXMLを扱うものですが、たのしいXMLの
外部リンク[html]:www.cityfujisawa.ne.jp
ここを改造してソースを作っているのですが、うまくいきません。

とりあえず三つのソースを作りました。

-- 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>
113
(1): 112のつづき 02/08/16 08:50 ID:q4PLH8KO(2/2) AAS
-- testxml.xml --
<?xml version="1.0" encoding="Shift_JIS" ?>
<test>mod</test>

-- c1.xsl --
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="外部リンク:www.w3.org">
<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」のソースを極めて胆略化した形で作ったのですが、うまく動かないのです。

どこが原因なのでしょうか。教えてください。
114: 112 02/08/16 11:12 ID:??? AAS
>>113
ちょっと訂正


<p>before<xsl:value-of select="test@pid" />after</p>


<p>before<xsl:value-of select="test" />after</p>
115: Spm 02/08/16 14:52 ID:WjrAiya2(1) AAS
c1.xsl のxsl:stylesheetに、version="1.0" を追加してください。

<xsl:stylesheet version="1.0" xmlns:xsl="外部リンク:www.w3.org">

これで駄目ならスレ違い。MSXMLの話題になります。
116: 02/08/20 03:03 ID:??? AAS
>>112
そこねー、たまに間違いあるよね(苦笑)
117: 112 02/08/21 04:32 ID:??? AAS
原因がわかりました。
115さんの Version の記述忘れもそうなんですが、xmlns をxmlns:xsl="外部リンク:www.w3.org にしてました。
つまり、僕が作る場合、閲覧者をIE5.0のXMLパーサー無しの環境で見てるのを前提に作らなきゃいけないので、自分のパソコンを同じ環境にしてあります。

で、
xmlns:xsl="外部リンク:www.w3.org
としたら表示できました。
118
(4): K's 02/08/30 14:43 ID:mcp2WYS4(1) AAS
XML初心者です。勉強をしているのですが、sortがうまく動きません。
下記にサンプルプログラムがありますが実際コピペして表示させたのですが
まったく表示されず、またエラーも出ません。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>
119
(1): 02/08/30 16:57 ID:??? AAS
>>118
<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="外部リンク:www.w3.org">
でなくて
  <xsl:stylesheet xmlns:xsl="外部リンク:www.w3.org">
ってなってない?
だとするとソートは、
  <xsl:for-each select="title" order-by="number(@price)">
と書けば上手くいくはず。
120
(1): Spm 02/08/30 21:56 ID:??? AAS
>>119
RelativeLocationPath ::= Step
| RelativeLocationPath '/' Step | AbbreviatedRelativeLocationPath

かつ、

Step ::= AxisSpecifier NodeTest Predicate* | AbbreviatedStep

かつ、

AbbreviatedStep ::= '.' | '..'

[参照] 外部リンク:www.w3.org

というわけで、./@price は合法のようです。

> <xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">がなぜ?
どこから>>118がこのサンプルを持ってきたのか気になりますな。
121: 02/09/03 09:22 ID:??? AAS
>>120
> どこから>>118がこのサンプルを持ってきたのか気になりますな。

気になる・・・あれからレスもついてないし。
122
(1): K's 02/09/03 09:47 ID:UYWG+Uf9(1) AAS
レス遅くなってすいません。社内のPCの台数が決まっていてなかなか
使用できないもので。。。
で、教えていただいた通りにやってみたのですがやはり表示されません。
それとこのサンプルは今となってはわかりませんがどっかのHPから
コピペしてきたものです。
<xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">
書いたのはapply-templates match="title" いかにfor-each select="title"を
適用すると解釈しているのですが。。。間違ってます?
123
(1): 02/09/03 12:03 ID:??? AAS
>>122
んー。テンプレート系エレメントについてもう少し勉強した方がいいかも。
sortの使い方云々よりもxsl文書が正しく書けていないと思う。
もっとXSLTの各エレメントの意味をよく理解しましょう。
124
(1): 02/09/04 23:35 ID:??? AAS
W3Cムカツク。
あんなアフォどもに好き勝手にさせてて委員会?
125: 02/09/06 01:19 ID:ultmv2D3(1) AAS
>>118
<?xml:stylesheet じゃなく <?xml-stylesheet だよ。こっちはハイフン。
126
(1): [age] 02/09/06 23:19 ID:??? AAS
>>124
禿同!
あんなバカどもに任せておけないよ。
127
(1): bloom 02/09/06 23:31 ID:PkazN1aJ(1) AAS
外部リンク:www.leverage.jp
128: 02/09/06 23:48 ID:??? AAS
>127
なんかrefreshとか書いたMETAタグしかない小さなソースだけど、
ブラクラか何か?
129: 02/09/07 03:30 ID:??? AAS
>>126
気合いだけは一人前ですね(^^)
130
(2): 02/09/09 12:28 ID:GqnKQPj5(1) AAS
xsltで質問です。
xsl:variableを使って変数を定義する方法を覚えたんですが、DOMを使って外部から変数を定義する方法ってあるんでしょうか?
たとえばxmlを
<hoge>
<fuga id="1">foo1</fuga>
<fuga id="2">foo2</fuga>
<fuga id="3">foo3</fuga>
</hoge>
として

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="外部リンク:www.w3.org">
<xsl:template match="hoge/fuga">
<html>
<xsl:if test="@id='$bar'"> ←?
<xsl:value-of select="." />
</xsl:if>
</html>
</xsl:template>
</xsl:stylesheet>

と作ったとすると
<xsl:variable name="bar">1</xsl:variable>
みたいに定義することを外部からできるでしょうか?

もしくはDOMを使って
bar=3
みたいに定義できるのでしょうか?
131: 02/09/09 13:20 ID:??? AAS
W3C・・・・無能であることは確かだ。
132: 02/09/09 15:14 ID:??? AAS
>>130
2chスレ:php
133: 02/09/09 19:45 ID:??? AAS
>>130
selectSingleNode()で検索してみれ
134
(3): 02/09/15 22:02 ID:??? AAS
ノードの在る無しという条件で、
処理を分岐するというのがどうすればいいのかよくわかりません。

<xsl:choose>
<xsl:when test='?????'> ←ここ
.......処理
</xsl:when>
<xsl:otherwise>
.......別の処理
</xsl:otherwise>
</xsl:choose>

?????にどう書けばいいのかな。
135
(1): 02/09/15 23:45 ID:??? AAS
>>134

そのままノード名でいいんじゃ。
id属性だったら <xsl:when test="@id">...言ってること違ったらゴメソ。
136
(1): 134 02/09/17 01:32 ID:??? AAS
レスサンクス。
質問が悪かった。XMLソースがないとわかるわけないね。

<parent>
 <context>
<childa>.......</childa> ←この部分が在ったり無かったりする。
</context>
<context>
</context>
</parent>

とりあえず今は、2つのXSLTファイルを用意して、
対応してる。
137: Spm 02/09/17 01:59 ID:0xmOo3Ol(1) AAS
>>134 = >>136

>>135氏の言うとおりでは。ノード集合そのまま。例えば:
<xsl:when test="child::childa">

<xsl:choose>要素をどういう文脈で使っているかにも依存するので、
一概にchild::childaで良いとは言えませんが。
カレントノードは何ですか?

test属性値については、boolean関数が適用されます。
外部リンク:www.w3.org
test属性値にノード集合を指定した場合、空ならfalse、それ以外はture.
138: 134=136 02/09/17 02:50 ID:??? AAS
でキタ━━━(゚∀゚≡(゚∀゚≡゚∀゚)≡゚∀゚)━━━━!!!!!!!!!!

皆さんサンクスです。
試していたはずなのですが、
スペルミスなり、確認ミスなり、うっかりしてなりで見逃していた模様。

本当にありがとうございました。
139: 02/09/17 18:11 ID:??? AAS
書きこみ少ないなぁ。
このままじゃ、某XML Pressみたいに、
このスレも消滅してしまうかも。
140: 02/09/18 11:14 ID:hvk3cr7f(1) AAS
じゃ、<age>
141
(2): 02/09/18 15:01 ID:??? AAS
いや、<age/> だ。
142
(1): 141 [<age/>] 02/09/18 15:02 ID:??? AAS
ていうか <sage/> ちゃった。
143: 02/09/18 15:12 ID:??? AAS
>>141 >>142
XMLタグの使い方間違えたから1番上に来ちゃったぞ
144: 02/09/18 15:15 ID:??? AAS
ここですか、XMLタグの使えない人々の集まるスレは
145
(1): JTR 02/09/25 19:45 ID:y/qFoSLv(1) AAS
ソフト・リサーチ・センターからCocoon2の書籍がでるみたい。
出版社のHPで目次見たけど結構よさげ。
たぶんC2の専門書って日本ではこれが最初かも。

それにしてもC2を仕事で使ってる人ってどれくらい
いるんだろうか。パフォーマンス的には問題ないのかな。
146: 02/09/25 20:00 ID:??? AAS
>>145
C2仕事で使ってるYO パフォーマンスはServletでSAX使ったアプリ書いた
のと同じ程度だYO(そのまんまじゃん)

C2自体がパフォーマンスの足を引っ張るというよりも、サーバのスペックとか
DBの性能とかが重要だねやっぱり。
147
(1): 02/10/02 00:23 ID:??? AAS
他板でこんなスレ見つけました。

XML使いの板
2chスレ:hp
レベル低め、XSLT中心、WEBでの利用。

他にXML語れる所知りませんか?
148
(1): 02/10/02 11:18 ID:??? AAS
>>上様
こんなの。
XML [WebProg]
コンテンツとデザインの分離 [WebProg]
XMLの必要性 [プログラム]
XMLプログラミング [プログラム]
XMLを限り無くオカルトに語る [心と宗教]
149: 147 02/10/02 14:08 ID:??? AAS
>>148
サンクス
全部見てきたよ。

……最後のスレ、こいつは…
150
(1): 02/10/05 16:58 ID:eN4sGb4j(1) AAS
普通のプロバに設置するCGIでXLSTできないかなあ
151: 02/10/05 23:24 ID:??? AAS
>>150
IEならXSLT入ってるぞ。

 …てのはだめなんだよな。
おれも情報きぼん
152: 02/10/07 05:30 ID:??? AAS
拾ってきた
2chスレ:tech
153
(1): [age] 02/10/11 04:30 ID:??? AAS
XSLTパーサのXERCESをインストールしようとしているのですが,うまくいきません.
解凍した後,コマンドラインから

SET CLASSPATH=%CLASSPATH%;C:\Xerces\xerces.jar

と入力しましたが,サンプルで試した所,

Exception in thresd "main" java.lang.NoClassDeFoundError

となってしまいました.バージョンは2.2.0です.
お分かりになる方,よろしくお願いします.
154: 02/10/15 01:38 ID:okBjBmnc(1) AAS
>>153
サンプルを実行したとき、何てコマンドラインに入力したんだよ

java -jar xxxx.jar か?
155
(1): 02/10/29 00:17 ID:??? AAS
XMLからXSLT変換で、違う形式のXMLファイルを出力したとしよう。
変換後のXMLファイルと、変換に使ったXSLTファイルを用いて、
元のXMLファイルを再現できるものだろうか?

変換
XML[A] + XSLT → XML[B]

戻す。
XML[B]の情報 + XSLTの情報 → XML[A]
156: 02/10/29 19:23 ID:??? AAS
>>155
問題になるのは変換時に捨ててしまった情報をどうするかだと思われ。
157: 02/10/29 23:52 ID:??? AAS
完全な再現は出来ないと思う。
同じXSLTを使って、おなじXML[B]を生成するのなら、出切るかもしれない。
いや、正直わからん。俺頭悪いし。
158
(1): 八べえ 02/11/12 15:09 ID:gxn/By35(1) AAS
Cocoon2を使用して、WEB表示を行うとソースに
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
が追記されてしまいます。
これにより、Shift-JISで書いているxml,xsltが文字化けを起こしています。
sitemap.xmap,cocoon.xconfをみてもそれらしき設定が見当たりません。
どのようにしたら、追記されなくなるのでしょうか?
159: bloom 02/11/12 15:36 ID:VFQMwTMk(1) AAS
外部リンク:homepage.mac.com
160
(1): HTMLをSJISで表示 02/11/13 10:55 ID:oYHYr3JM(1/2) AAS
>>158
docs/samples/hello-page.xml
<?xml version="1.0" encoding="Shift_JIS"?>
を入れると、正常なUTF-8に変換されるので、文字化けしない。
結果charset=UTF-8

xslt の中のoutput は利かない。
結果htmlも、SJISにする場合は、serializer に指定する。
html serializer に、sjis 版追加
<map:serializer name="html-sjis" logger="sitemap.serializer.html" mime-type="text/html" pool-grow="4" pool-max="32" pool-min="4" src="org.apache.cocoon.serialization.HTMLSerializer">
<buffer-size>1024</buffer-size>
<encoding>Shift_JIS</encoding>
</map:serializer>
hello.html のマップをコピーして sjis バージョンを作る
<map:match pattern="hello-sjis.html"><!-- ここ**-->
<map:generate src="docs/samples/hello-page.xml"/>
<map:transform src="stylesheets/page/simple-page2html.xsl"/>
<map:serialize type="html-sjis"/><!-- ここ**-->
</map:match>

ばんざーい。 これで完成 結果charset=Shift_JIS
161
(1): XMLをSJISで出力 02/11/13 11:03 ID:oYHYr3JM(2/2) AAS
hello.html を指定すると UTF-8版が表示され、
hello-sjis.html を指定すると、 SJIS版が表示されるようになる。

別件だが
xml の出力の中の encoding=UTF-8 を変更する場合は、xslt の中で、
<xsl:output omit-xml-declaration="no" encoding="Shift_JIS"/>
とかやると良い。
162: 160=161 02/11/13 15:02 ID:fcqFiIq0(1/2) AAS
>>160 = >>161

ばんざ〜い!!
みなさんありがとうございました。
無事、SJIS表示できるようになりました。
163: 教えて下さい 02/11/13 17:52 ID:fcqFiIq0(2/2) AAS
xslの全ての<xsl:value-of select=....>の項目に、
「disable-output-escaping="yes"」を指定したいのですが、
まとめて設定するにはどのようにしたらよいのでしょうか?
164: 02/11/15 22:35 ID:Q0ofQCcS(1) AAS
disable-output-escaping="yes" を <xsl:value-of に追加する
XSLT を書いて XSLT を変換...
165: 02/11/15 23:27 ID:y2tgiCuR(1) AAS
エディタで一括変換
166
(1): 02/12/09 01:32 ID:eA2V6vYL(1) AAS
すごい単純な質問なんですけど、

<a>
<xsl:attribute name="href">
<xsl:value-of select="@url" />
</xsl:attribute>
<xsl:attribute name="target">
_self
</xsl:attribute>
<xsl:value-of select="@url" />
</a>

とXSLでリンクを作ったんですが、targetを _self にしても、_blank みたいに別ウィンドウでリンク先が表示されてしまいます。
_self や _top のように別ウィンドウを開かないでリンク先を表示させるにはどうすればいいのでしょうか?
167: 166 02/12/09 01:51 ID:??? AAS
自己レスです。

<xsl:attribute name="target">_self</xsl:attribute>

と繋げればうまくいきました。どうも間にリターンがあったのが原因みたいです。
168: 03/01/06 07:36 ID:??? AAS
DTDで
<!ENTITY foo SYSTEM "bar.xml">

を XML schema で表現するにはどうすればいいんですか?
169: 03/01/06 07:44 ID:L2+zJcVG(1) AAS
しまった、ageておこう
170: 山崎渉 [(^^)sage] 03/01/15 13:36 ID:??? AAS
(^^)
171: 03/01/22 05:21 ID:vujRJlnb(1) AAS
i love love generation
172: ぱむ 03/01/28 17:32 ID:IBfGocF/(1) AAS
cocoonのsitemap.xmapで2つ以上のxmlを1つのxslに適用したい場合は
どうすればいいんですか?
<map:generate src="aaa.xml"/>
<map:generate src="bbb.xml"/>
<map:transform src="ccc.xsl"/>
とすると「適用出来るxmlは1つだけ」というエラーが出てしまいます。
だれか宜しくお願いします。
1-
あと 386 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.627s*