5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

XSL/XSLT

1 :名無しさん@お腹いっぱい。:01/09/05 10:49 ID:dYMWGvtU
語ろう。ていうか教えて。

2 :名無しさん@お腹いっぱい。:01/09/05 10:50 ID:dYMWGvtU
XSLT文書の実行時書き換えってどうやるんでしょう。涙。

3 :名無しさん@お腹いっぱい。:01/09/05 12:46 ID:rFbk2SFA
DOMでXSLTを生成すりゃいいんでないの?

4 :名無しさん@お腹いっぱい。:01/09/05 19:00 ID:.fOk25kQ
XSLTで読み書き可能なグローバル変数を使うにはどうしたらいいの?

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="." version="1.0" exclude-result-prefixes="msxsl user">
<xsl:output method="html" version="4.0" encoding="Shift_JIS"/>

<xsl:variable name="default_name"/>

<xsl:template match="/root">
<html lang="ja">
<head>
<title><xsl:value-of select="title"/></title>
</head>
<body>
<h1><xsl:value-of select="title"/></h1>
<xsl:apply-templates select="book" />
</body>
</html>
</xsl:template>

<xsl:template match="talk">
<xsl:if test="@name!=''">
<xsl:value-of select="@name"/>「
</xsl:if>
<xsl:if test="@name=''">
<xsl:value-of select="$default_name"/>「
</xsl:if>
</xsl:template>

<xsl:template match="defaultname">
<xsl:variable name="default_name" select="."/>
</xsl:template>

こんな感じで書いてるんだが、変数の書き換えができないみたい。
環境は MSXML3.0SP1 + MSXSL.exe

5 :名無しさん@お腹いっぱい。:01/09/06 03:57 ID:cEL2v6yw
「読み書き可能なグローバル変数」の直接の解では無いし
元の XML ややりたい事がはっきりしないので的外れかもしれんが

<xsl:variable name="default_name"/>

のところを

<xsl:variable name="default_name">
<xsl:value-of select="/root/defaultname" />
</xsl:variable>

とかにするだけではダメなのか?

6 :名無しさん@お腹いっぱい。:01/09/06 23:44 ID:???
>>5
ありがとう。
defaultname要素の場所が固定なら、それでいいかも知れない。

とりあえずはスクリプトを使っておくよ…。
さりげなく下逸マンセー

7 :名無しさん@お腹いっぱい。:01/09/10 14:21 ID:CV8.18JQ
XSLTの文法チェッカってあり?

8 :名無しさん@お腹いっぱい。:01/09/11 12:11 ID:liJMw8bE
>>2 XMLパーフェクトブック になんか書いてあるみたいだよ?
目次しかしらん。
誰か読んでない?

9 :名無しさん@お腹いっぱい。:01/09/11 14:24 ID:liJMw8bE
XSLTで、たくさんある要素をテーブルにしたいんだけど
どう書けばいいんだろう???
<datalist>
<data>a</data>
<data>b</data>
<data>c</data>
<data>d</data>
<data>e</data>
<data>f</data>
</datalist>

a b c
d e f
という表にするイメージ。

10 :名無しさん@お腹いっぱい。:01/09/11 14:30 ID:???
(´-`).。oO(HTMLのtable要素なのか、
       データベースのテーブルなのか、TeXのテーブルなのか、
       一体どのテーブルなんだろう?)

11 :名無しさん@お腹いっぱい。:01/09/11 15:05 ID:liJMw8bE
あーごみんなさい。HTMLのtable要素です。
<table>
<tr><td>a</td><td>b</td><td>c</td></tr>
<tr><td>d</td><td>e</td><td>f</td></tr>
</table>
にしたいのです。

12 :名無しさん@お腹いっぱい。:01/09/13 14:48 ID:botIizDw
<xsl:for-each select="datalist/data">
<xsl:if test="position() mod 3 = 0"><tr></xsl:if>
<td>…</td>
<xsl:if test="position() mod 3 = 0"></tr></xsl:if>
</xsl:for-each>
のようにやってみたのですが、
(1)<td>〜</td><td>〜</td><tr><td>〜</td></tr>の順に出力される
(2)<tr>が<tr>と出力されるためタグとして機能しない
という状態になっています。かなりしょんぼりしています。

13 :9:01/09/13 14:51 ID:???
>>9=>>11-12です

14 :名無しさん@お腹いっぱい。:01/09/14 21:41 ID:LySoniQw
XSLTの文法チェッカってありますか?

15 :名無しさん@お腹いっぱい。:01/09/14 21:44 ID:LySoniQw
あ。>>7さんとだぶってた。すんません。

16 :名無しさん@お腹いっぱい。:01/09/19 19:09 ID:xIy8M15c
<xsl:for-each select=".." >
...
</xsl:for-each>
の中で、<xsl:value-of select="javascript:test(.)">
などとやった場合、
function test( arg )
に渡される引数argを文字列として扱いたいんですが、
どうにもうまく行きません。どなたか分かる方いらっしゃいますか?

17 :独学XML:01/10/25 14:59 ID:9/96eztC
ふーん

18 :乙葉:01/10/27 19:23 ID:F9QxoFrS
9に便乗なんだけど、9のXMLを <xsl:for-each> を使わずに
1 a
2 b
3 c
4 d
5 e
6 f
のように出力することってできます?<xsl:variable>をインクリメントさせながら
変換していくようなイメージ…。for-eachのカウンタを変数としてとれるならそれで
もいいんですけど…。

19 :名無しさん@お腹いっぱい。:01/11/04 04:55 ID:90OzPiaz
>>18

<xsl:for-each> と <xsl:number> を組み合わせれば良いのでは?

for-eachを使わない方法なんて考えられないでしょ
<data>が6個固定とかならいざ知らず

20 :名無しさん@お腹いっぱい。:01/11/09 01:11 ID:???
>>18
<OL>
<LI>a</LI>
<LI>  (以下略.............ワラ

21 :名無しさん@お腹いっぱい。:01/12/07 15:09 ID:7lK3vz6F
>>9
かなーり遅レスですがこんな感じじゃだめですか?
<table border="1">
<tr>
<xsl:for-each select="datalist/data">
<td><xsl:value-of select="..."/><br/></td>
<xsl:if test="position() mod 3 = 0"></tr><tr></xsl:if>
</xsl:for-each>
</tr>
</table>

22 :名無しさん@お腹いっぱい。:01/12/08 21:23 ID:Tssb4f+E
他鯖にあるXMLファイルを取り込んで表示とかはできるの?

23 :9:01/12/08 21:41 ID:???
>>21 さんきゅうです

24 :名無しさん@お腹いっぱい。:01/12/20 15:56 ID:04pPLyWb
>>22
document()関数を使えばできそげ。
http://www.infoteria.com/jp/REC-xslt-19991116-jpn.htm#document

URI指定で他鯖を指定すれば良いんでないの?

ところでdocument()関数の説明に第2引数云々ってあるんだけど、
引数を2つ書くとinvalid number of function argumentsっていう
エラーがでてしまって鬱。

25 :名無しさん@お腹いっぱい。:01/12/27 18:06 ID:2WckNNJE
XSLTの仕様を見ていて湧いた素朴な疑問なんですが…
Syntax Summaryの属性で、{}がついてるのとついていないのの
違いって何なのでしょう???

たとえば↓のqnameと{ qname }です
<xsl:apply-templates
select = node-set-expression
mode = qname>
<!-- Content: (xsl:sort | xsl:with-param)* -->
</xsl:apply-templates>

<xsl:attribute
name = { qname }
namespace = { uri-reference }>
<!-- Content: template -->
</xsl:attribute>

26 :名無しさん@お腹いっぱい。:02/01/22 17:26 ID:kIM5fYXv
HTMLを出力するXSLTの中にJavaScriptを書いているのですが、
スクリプトの中で、"<"を使うにはどうしたら良いのでしょう?
&gt;や&lt;を使うと、そのまま出力されてしまい実行できません。
<[CDATA[ 〜 ]]>で囲んでも同じ感じです。
アイディアきぼんぬ、です。

可能なところは、!= で逃げているのですが、やはり大小比較は必要なのです。

27 :26:02/01/22 17:41 ID:s+GnOL1u
>>26 すんまそん。<xsl:text>でできましたでやんす。

28 :助けてー:02/01/22 22:03 ID:IcXQR5Jq
XML+XSLTでSVGを書き出し、Adobe SVGViewerで出力したいのですが
表示できません。


29 :名無しさん@お腹いっぱい。:02/01/23 00:21 ID:???
>>28
XML+XSLT→SVGの変換は何使ってやるの? IEとかmozilaとか?

30 :助けてー:02/01/23 00:59 ID:aDpAhdJs
あ、ごめんなさい。書き忘れていました。
Apache+Jakarta-tomcat+cocoonです。。

31 :名無しさん@お腹いっぱい。:02/01/23 01:19 ID:???
>>30
image/svg+xmlとして認識されていないのでは?
ていうか認識させられるのかしらん。
(namespaceの指定だけでどうにかできるのかな…ようわからん)

32 :名無しさん@お腹いっぱい。:02/01/24 09:53 ID:CFRaDXx6
>>18
<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>が対応してないから)、大丈夫なのもあるのかな?



33 :名無しさん@お腹いっぱい。:02/01/28 11:04 ID:???
>>32
> うちのXSLTプロセッサだと >>21 みたいなのは怒られるんだけど
> (<tr>と<xsl:if>が対応してないから)、大丈夫なのもあるのかな?

あるわけないよ。XMLじゃないもん、それ。

34 :30:02/01/29 08:17 ID:UyexUS1t
>31
image/svg+xml指定してもだめでした。
なんどやってもAdobeのビューアーで表示できなかったんだけど
荒業でぬけることができました。

xml(+xslt→svg)をsmilのドキュメントに
<img src="target.xml">
という感じでうめこみRealPlayerでsmilを読み込ませると
svgが表示サレマした。うーん‥

35 :名無しさん@お腹いっぱい。:02/02/02 23:39 ID:KwUwsoRo
XSLTで遊んでる好例ハケーン→ http://moso.borogrammers.net/newlin/


36 :名無しさん@お腹いっぱい。:02/02/21 18:16 ID:a4ipQQMG
<xsl:choose>
 <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


37 :名無しさん@お腹いっぱい。:02/02/21 18:19 ID:a4ipQQMG
あああああ

テンプレート分けて xsl:when 内で xsl:call-template すりゃ済む話か…
逝ってきます…………


38 : :02/03/08 18:28 ID:EI/igJgK
スレ違い覚悟。

apache + tomcat + 横浜ベイキットCocoon にて XSL:FO 運用を目指してます。
フォント埋め込みになっちゃうんだけど、外字を表示させるにはどうしたらいいんでしょ。


39 :nobodyさん:02/03/09 21:16 ID:gH82xLKm
>>38
横浜ベイキットCocoonってCocoon1のことかなぁ?
ApacheCocoon2なら少しは分かるかも知れんけど
そっちの話でもいい?

40 : :02/03/11 09:34 ID:ktAR11by
>>39
本当は Cocoon1.82 の話がいいんですが
やり方わかれば Cocoon2 に移行しても問題ないですので
ご教授よろしくお願いします。

41 : :02/03/14 14:42 ID:U7MOt75j
ところで Cocoon2 って日本語対応してるの?

42 : :02/03/16 12:29 ID:aNCStdKB
>>41
対応してるよん。
バージョン2.0.1の時点ではリクエストパラメータの処理に
問題がありますが、2.0.2で改善されます。

>>40
TTEditなんかで作ったフォントを
使いたいということでよろしいかな?

まずFOP単独で出力できないと話が進まないので
FOPの最新版バイナリを落してきてください。
http://xml.apache.org/dist/fop/#


43 :38:02/03/17 21:51 ID:Xcs9LUc9
>>42
まさしくその通りです<TTEdit

一応落として マバイットさんとこみたく インストールしてみました。

44 :38:02/03/17 21:54 ID:Xcs9LUc9
↑当然ながら Cocoon2 最新版までです

45 :42:02/03/19 07:45 ID:Vm7v8Ppz
>>44
すでに外字は作成済みですかな?
TTEditの外字作成機能で作ったものではなくて、
UNICODEのE000などの外字領域に直接フォントを作成した
ttfファイルが必要なのですが。

46 :qqq<:02/03/19 08:43 ID:???
asd

47 :38:02/03/19 09:55 ID:ENr4RQ8P
TTEditの質問になってしまうかもしれないのですが
Windowsについてくるフォント(MSゴシックとか)だと
外字領域に直接フォント作れるけど
他の市販モノだと「・」となっていじれないんですよねぇ。
そういったプロテクトはずす方法知ってます?

48 :42:02/03/20 20:14 ID:VQ4jw/To
>>47
外字領域書き込み可能にしたTTEDITで
新規のフォントを作って、
そこに市販のフォントを一括コピーしたら
出来るかも知れんです。

とりあえず入手した
fop-0.20.3-bin.tar.gz
を適当な場所に解凍してください。
OSはLinuxでよいですか?





49 :38:02/03/22 00:11 ID:nXgMXn31
>>48
なるほど。
一応 fop解凍しました。
OS は TurboLinuxServer でっす。

50 :42:02/03/23 00:22 ID:KjUoYuvr
>>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
うおー出た出たすげー。
説明ありがとうございます。
これで世間に顔向けできます。

52 :38:02/03/25 20:12 ID:moXJH3iy
というわけで、一応出力ファイル
(これがメトリクスファイル?)
が出力されました。

この後は如何に。。。

53 :42:02/03/27 06:14 ID:7X2Z09vV
>>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
なるほろ。
コピー&ペーストで設定ファイル作りました。

とうとうPDF出力ですか ニヤリ

55 :42:02/03/30 13:59 ID:u2FWmlwu
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
<?xml version="1.0" encoding="EUC-JP"?>

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


57 :42:02/03/30 14:03 ID:u2FWmlwu
2chだと勝手に文字が変換されるようですな。

外字だよん→・

の部分は

外字だよん→&#xE000

&はもちろん半角ね
です。

58 :38:02/04/02 19:43 ID:W7Q/zpoW
おーおー
確かにPDF出力できました。

さて、次は Cocoon2 連携ですな。

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

今、修正版を準備してます。
明日にでもうpするので、しばし待ってください。


60 :あぼーん:あぼーん
あぼーん

61 :42:02/04/04 21:42 ID:b//D81ae
とりあえずうpしたので
下の物を落としてきてください
http://218.130.228.56:4040/c2.tgz


62 :38:02/04/05 09:34 ID:gSye2Xnn
落とすは落としました。
単に解凍すればいいのかな?

63 :42:02/04/06 14:30 ID:XfqBDhEm
とりあえず、
まだ入れてなければJDK1.4とTomcat4.0.3LEを
入れておいてください。

64 :38:02/04/06 21:21 ID:ECdvWQTo
tomcat は 3.x ではなく 4.x なんですね。
了解しました。

65 :nobodyさん:02/04/06 22:21 ID:p5+bp4EQ
JDK1.4でCocoon2を使えますか?
Cocoon2のソース取って来てビルドかけても
ビルド通らないんで、妥協してJDK1.3使ってるんですが。


66 :42:02/04/07 09:11 ID:aptyKfg7
以下のJDK1.4対応版Tomcatで動作を確認してます。
http://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/
にアクセスできるはずです。



67 :65:02/04/10 21:49 ID:???
どうも、65です。
LE板じゃないtomcat使ってたのが動かない原因でした。
失礼しました。


68 :38:02/04/16 13:13 ID:BXQRKCQc
かちゅ〜しゃであぼーんされたと表示されたので
最後の最後でとがっかりしてましたが、ブラウザで
見たら、最終動作確認まで書き込みされていてほっとしました。

早速試してみます。

69 :nobodyさん:02/04/19 00:59 ID:CkxCgoEa
中途半端な手続き言語XSLTはいらん
仕様から廃止しろ

70 : :02/04/23 22:43 ID:CN3t/tua
ってか、
apache1.24 + tomcat3.2.4 + cocoon2.0.2 の
インストールがうまくいかん!

どうして tomcat 立ち上げると core 吐いて落ちるんじゃー

71 : :02/04/23 22:44 ID:CN3t/tua
↑いやん
× 1.24
○ 1.3.24

72 :nobodyさん:02/05/22 16:48 ID:???
XSLTで複数のキーについてソートしたい場合はどうすればいいのでしょうか?

SQLだと、
select foo, bar from tee order by foo, bar
というように書けますけど、XSLTだと可能なのでしょうか?

73 :72:02/05/24 12:47 ID:???
>72
<xsl:sort select="foo"/>
<xsl:sort select="bar"/>
でできました。

74 :Name_Not_Found:02/05/29 14:44 ID:FW6HquND
もういいかげん、XSL と XSLT をいっしょに扱うことに無理がある

XSLT は XTransform とかに改名すれ

75 :non:02/05/29 15:16 ID:8Y6vpIWK
COCOON2にて日本語を利用可にする
設定方法、設定ファイル等
教えてください。

76 :tachan:02/05/30 17:53 ID:2EIuRR3F
COCOON2にてXSPを利用しようと思います。

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

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

sitemap.xmapなのかcocoon.xconfなのかわかりません。


77 :nobodyさん:02/05/30 18:29 ID:???
>>75
こちらでは問題ないがOSは何だ? あとGeneratorやTransformerは
何を使ってるんだ?

>>76
/Tomcat/webapps/cocoon/WEB-INF/classesに置くのは駄目なのか?

78 :77:02/05/30 18:33 ID:???
>>75
http://www.emergence.jp/mail-archive/ci/index.cgi?mss:54:200205:dmoeikbhogokbpdjofji
ではどうだ?

79 :nobodyさん:02/05/31 02:56 ID:HNPPjz0j
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4065-3.html
この本はどうですか?
値段が高いので迷っています。

80 :non:02/05/31 10:08 ID:XfZ+NB0u
勉強不足ですいません。
OSは、Redhat7.2です。

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

Generator:JspGenerator
Transformer:TraxTransformer

となっております。
見当違いでしたらすいません。

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

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

それと、そもそも文字化けを確認しているブラウザもRedhat上かな?

82 :nobodyさん:02/06/01 23:15 ID:???
>>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
>TOMCAT_HOME/webapps/cocoon/WEB-INF/web.xml
>を触ればよい。
><init-param>
><param-name>extra-classpath</param-name>
><param-value>ここで指定する</param-value>
></init-param>

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

本当にありがとうございました。



84 :あぼーん:あぼーん
あぼーん

85 :>:02/06/06 13:34 ID:CeCgqXVC
21は33の言うとおり。
試してもいない21のコードに
9も試してもいないのに感謝する必要はない。

で,結局
</tr><tr>
は,
<xsl:text disable-output-escaping="yes"></tr><tr></xsl:text>
とすればOK。

86 :85:02/06/06 13:38 ID:CeCgqXVC
ちぇっ,展開されちった。
めんどいから全角で書くよ。
85のは
<xsl:text disable-output-escaping="yes">&lt;/tr&gt;&lt;tr&gt;</xsl:text>
ということね。

87 :nobodyさん:02/06/09 17:09 ID:???
普通のレンタルサーバとかでサーバサイドのXSLT変換ってできる?

88 :nobodyさん:02/06/11 00:22 ID:qDeG/JWs
>>87
Perl使ってるんならこことか見てみたらどうかな。
http://www-6.ibm.com/jp/developerworks/xml/j_perl-xml-toolkit.html

89 :nobodyさん:02/06/14 16:06 ID:???
>86
<element name="tr" />
ではあかんか?

90 :nobodyさん:02/06/15 00:30 ID:???
>>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 :nobodyさん:02/06/26 11:32 ID:GX1WMLoK
<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 :nobodyさん:02/06/26 15:12 ID:kyxI2iEY
<xsl:value-of select="preceding-sibling::foo[1]/a"/>
とかじゃだめなの。
というかもう少し具体的に。

93 :nobodyさん:02/06/26 15:34 ID:6FYKwyrE
173 :参加するカモさん :02/03/12 09:46
みんなメルマガ読んでる?
あれ読むとひろゆきの性格よくわかるよ
すっごい陰湿。
根暗。
正直、引くよ。2chの管理人って、こういう奴なのかって。

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

177:参加するカモさん :02/03/12 11:42
ひろゆきさんっては自分の都合の良いことしか報告しないし、都合が悪くなると
報告しなくなっちゃうんだよね、、
それにしてもひろゆきさんてば見事に陰湿な文章書くなあ。。

94 :nobodyさん:02/06/26 15:51 ID:GX1WMLoK
>>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
こうかな、、

<?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>

96 :94:02/06/26 19:29 ID:???
アドバイスありがとうございます。

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

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

xsl:keyとkey関数を知らなかったので勉強になりました。
ちょっとこのアドバイスを元に考えてみます。
ほんとにありがとうございます!




97 :結局さぁ:02/06/27 00:28 ID:kFFjIjuv
XSLTってXSLの鬼っ子でしょ?
とっとと改名しる!

98 :nobodyさん:02/07/03 10:46 ID:???
なんだか難しそうだな

99 :nobodyさん:02/07/03 19:07 ID:P21eikik
Cocoon2でXSPを使ってHTMLを出力するとなぜか文字化けしちゃう。
XSPの出力エンコーディング設定ってどこですればいいんでしょうか?


100 :Cocoon2:02/07/03 19:07 ID:P21eikik
Cocoon2でXSPを使ってHTMLを出力するとなぜか文字化けしちゃう。
XSPの出力エンコーディング設定ってどこですればいいんでしょうか?


101 :nobodyさん:02/07/04 23:36 ID:QxzpOV1b
ある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 :nobodyさん:02/07/05 01:35 ID:???
>>100
ここ見れ↓
http://www.emergence.jp/mail-archive/ci/index.cgi?mss:54:200205:dmoeikbhogokbpdjofji


103 :Cocoon2:02/07/05 10:46 ID:o63MT+vE
>>102
まじで感謝!


104 :Spm:02/07/06 00:35 ID:zVcgsDeC
>>101

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

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

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

xalanてそんなものですか。いやXTから乗り換えようと思っていたので。

105 :101:02/07/06 02:17 ID:vHzD1DJG
>>104
すいません,書いた後に気付きました...
priority の値を逆にしてもやはり意図通りになりません.

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

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

ちなみにXTでも試してみたのですが,xalanと挙動は同じでした.
むぅ.


106 :101:02/07/06 02:20 ID:???
s/prioriry/priority/g
です


107 :Spm:02/07/06 20:49 ID:zVcgsDeC
>>106
当方のXTはきちんとfoo要素だけfooというテキストノードにしてくれてます。
priority属性もみてくれてますし。
これはxalanのせいじゃないかもしれないですね。

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

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

これしか考えられないのですが、違ってたらすみません。

108 :nobodyさん:02/07/07 00:44 ID:wYb8dbIP
>>107
>ソース文書のfoo要素に名前空間ついてませんか?
>ルート要素にデフォルトの名前空間(xmlns="uri")つけてませんか?

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

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

# 「デフォルトの名前空間に関する問題は XSLT 2.0 で解決される」
# と聞いたことがあります.


109 :Spm:02/07/07 03:49 ID: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 より


110 :108:02/07/07 16:47 ID:wYb8dbIP
>>109
もう目からウロコです.
ばっちりです,助かりました.
ありがとうございました.


111 :nobodyさん:02/08/11 23:48 ID:77b+zq0z
XSLTは変数の値変更できなくて不便でしょうがないので、
もう使用しないことにした。

112 :nobodyさん:02/08/16 08:50 ID:q4PLH8KO
初めてXMLを扱うものですが、たのしいXMLの
http://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>


113 :112のつづき:02/08/16 08:50 ID:q4PLH8KO
-- 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="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」のソースを極めて胆略化した形で作ったのですが、うまく動かないのです。

どこが原因なのでしょうか。教えてください。

114 :112:02/08/16 11:12 ID:???
>>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
c1.xsl のxsl:stylesheetに、version="1.0" を追加してください。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

これで駄目ならスレ違い。MSXMLの話題になります。

116 :nobodyさん:02/08/20 03:03 ID:???
>>112
そこねー、たまに間違いあるよね(苦笑)

117 :112:02/08/21 04:32 ID:???
原因がわかりました。
115さんの Version の記述忘れもそうなんですが、xmlns をxmlns:xsl="http://www.w3.org/1999/XSL/Transform にしてました。
つまり、僕が作る場合、閲覧者をIE5.0のXMLパーサー無しの環境で見てるのを前提に作らなきゃいけないので、自分のパソコンを同じ環境にしてあります。

で、
xmlns:xsl="http://www.w3.org/TR/WD-xsl
としたら表示できました。

118 :K's:02/08/30 14:43 ID:mcp2WYS4
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 :nobodyさん:02/08/30 16:57 ID:???
>>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="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)">
と書けば上手くいくはず。

120 :Spm:02/08/30 21:56 ID:???
>>119
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がこのサンプルを持ってきたのか気になりますな。

121 :nobodyさん:02/09/03 09:22 ID:???
>>120
> どこから>>118がこのサンプルを持ってきたのか気になりますな。

気になる・・・あれからレスもついてないし。

122 :K's:02/09/03 09:47 ID:UYWG+Uf9
レス遅くなってすいません。社内のPCの台数が決まっていてなかなか
使用できないもので。。。
で、教えていただいた通りにやってみたのですがやはり表示されません。
それとこのサンプルは今となってはわかりませんがどっかのHPから
コピペしてきたものです。
<xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">
書いたのはapply-templates match="title" いかにfor-each select="title"を
適用すると解釈しているのですが。。。間違ってます?


123 :nobodyさん:02/09/03 12:03 ID:???
>>122
んー。テンプレート系エレメントについてもう少し勉強した方がいいかも。
sortの使い方云々よりもxsl文書が正しく書けていないと思う。
もっとXSLTの各エレメントの意味をよく理解しましょう。

124 :nobodyさん:02/09/04 23:35 ID:???
W3Cムカツク。
あんなアフォどもに好き勝手にさせてて委員会?

125 :nobodyさん:02/09/06 01:19 ID:ultmv2D3
>>118
<?xml:stylesheet じゃなく <?xml-stylesheet だよ。こっちはハイフン。

126 :nobodyさん:02/09/06 23:19 ID:???
>>124
禿同!
あんなバカどもに任せておけないよ。

127 :bloom:02/09/06 23:31 ID:PkazN1aJ

http://www.leverage.jp/bloom/start/

128 :nobodyさん:02/09/06 23:48 ID:???
>127
なんかrefreshとか書いたMETAタグしかない小さなソースだけど、
ブラクラか何か?

129 :nobodyさん:02/09/07 03:30 ID:???
>>126
気合いだけは一人前ですね(^^)

130 :nobodyさん:02/09/09 12:28 ID:GqnKQPj5
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="http://www.w3.org/1999/XSL/Transform">
<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 :nobodyさん:02/09/09 13:20 ID:???
W3C・・・・無能であることは確かだ。

132 :nobodyさん:02/09/09 15:14 ID:???
>>130
http://pc.2ch.net/test/read.cgi/php/984851406/129-130

133 :nobodyさん:02/09/09 19:45 ID:???
>>130
selectSingleNode()で検索してみれ

134 :nobodyさん:02/09/15 22:02 ID:???
ノードの在る無しという条件で、
処理を分岐するというのがどうすればいいのかよくわかりません。

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

?????にどう書けばいいのかな。




135 :nobodyさん:02/09/15 23:45 ID:???
>>134

そのままノード名でいいんじゃ。
id属性だったら <xsl:when test="@id">...言ってること違ったらゴメソ。

136 :134:02/09/17 01:32 ID:???
レスサンクス。
質問が悪かった。XMLソースがないとわかるわけないね。

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

とりあえず今は、2つのXSLTファイルを用意して、
対応してる。

137 :Spm:02/09/17 01:59 ID:0xmOo3Ol
>>134 = >>136

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

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

test属性値については、boolean関数が適用されます。
http://www.w3.org/TR/xpath#function-boolean
test属性値にノード集合を指定した場合、空ならfalse、それ以外はture.


138 :134=136:02/09/17 02:50 ID:???
でキタ━━━(゚∀゚≡(゚∀゚≡゚∀゚)≡゚∀゚)━━━━!!!!!!!!!!

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

本当にありがとうございました。


139 :nobodyさん:02/09/17 18:11 ID:???
書きこみ少ないなぁ。
このままじゃ、某XML Pressみたいに、
このスレも消滅してしまうかも。

140 :nobodyさん:02/09/18 11:14 ID:hvk3cr7f
じゃ、<age>


141 :nobodyさん:02/09/18 15:01 ID:???
いや、<age/> だ。

142 :141:02/09/18 15:02 ID:???
ていうか <sage/> ちゃった。

143 :nobodyさん:02/09/18 15:12 ID:???
>>141, >>142
XMLタグの使い方間違えたから1番上に来ちゃったぞ


144 :nobodyさん:02/09/18 15:15 ID:???
ここですか、XMLタグの使えない人々の集まるスレは


145 :JTR:02/09/25 19:45 ID:y/qFoSLv
ソフト・リサーチ・センターからCocoon2の書籍がでるみたい。
出版社のHPで目次見たけど結構よさげ。
たぶんC2の専門書って日本ではこれが最初かも。

それにしてもC2を仕事で使ってる人ってどれくらい
いるんだろうか。パフォーマンス的には問題ないのかな。

146 :nobodyさん:02/09/25 20:00 ID:???
>>145
C2仕事で使ってるYO パフォーマンスはServletでSAX使ったアプリ書いた
のと同じ程度だYO(そのまんまじゃん)

C2自体がパフォーマンスの足を引っ張るというよりも、サーバのスペックとか
DBの性能とかが重要だねやっぱり。

147 :nobodyさん:02/10/02 00:23 ID:???
他板でこんなスレ見つけました。

XML使いの板
http://pc3.2ch.net/test/read.cgi/hp/984950028/
レベル低め、XSLT中心、WEBでの利用。

他にXML語れる所知りませんか?

148 :nobodyさん:02/10/02 11:18 ID:???
>>上様
こんなの。
XML [WebProg]
コンテンツとデザインの分離 [WebProg]
XMLの必要性 [プログラム]
XMLプログラミング [プログラム]
XMLを限り無くオカルトに語る [心と宗教]


149 :147:02/10/02 14:08 ID:???
>>148
サンクス
全部見てきたよ。

……最後のスレ、こいつは…

150 :nobodyさん:02/10/05 16:58 ID:eN4sGb4j
普通のプロバに設置するCGIでXLSTできないかなあ

151 :nobodyさん:02/10/05 23:24 ID:???
>>150
IEならXSLT入ってるぞ。

 …てのはだめなんだよな。
おれも情報きぼん

152 :nobodyさん:02/10/07 05:30 ID:???
拾ってきた
http://pc3.2ch.net/test/read.cgi/tech/1014643296/147

153 :nobodyさん:02/10/11 04:30 ID:???
XSLTパーサのXERCESをインストールしようとしているのですが,うまくいきません.
解凍した後,コマンドラインから

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

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

Exception in thresd "main" java.lang.NoClassDeFoundError

となってしまいました.バージョンは2.2.0です.
お分かりになる方,よろしくお願いします.


154 :nobodyさん:02/10/15 01:38 ID:okBjBmnc
>>153
サンプルを実行したとき、何てコマンドラインに入力したんだよ

java -jar xxxx.jar か?

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

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

戻す。
XML[B]の情報 + XSLTの情報 → XML[A]

156 :nobodyさん:02/10/29 19:23 ID:???
>>155
問題になるのは変換時に捨ててしまった情報をどうするかだと思われ。


157 :nobodyさん:02/10/29 23:52 ID:???
完全な再現は出来ないと思う。
同じXSLTを使って、おなじXML[B]を生成するのなら、出切るかもしれない。
いや、正直わからん。俺頭悪いし。

158 :八べえ:02/11/12 15:09 ID:gxn/By35
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

http://homepage.mac.com/bloombloom/

160 :HTMLをSJISで表示:02/11/13 10:55 ID:oYHYr3JM
>>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 :XMLをSJISで出力:02/11/13 11:03 ID:oYHYr3JM
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
>>160 = >>161

ばんざ〜い!!
みなさんありがとうございました。
無事、SJIS表示できるようになりました。

163 :教えて下さい:02/11/13 17:52 ID:fcqFiIq0
xslの全ての<xsl:value-of select=....>の項目に、
「disable-output-escaping="yes"」を指定したいのですが、
まとめて設定するにはどのようにしたらよいのでしょうか?


164 :nobodyさん:02/11/15 22:35 ID:Q0ofQCcS
disable-output-escaping="yes" を <xsl:value-of に追加する
XSLT を書いて XSLT を変換...


165 :nobodyさん:02/11/15 23:27 ID:y2tgiCuR
エディタで一括変換

166 :nobodyさん:02/12/09 01:32 ID:eA2V6vYL
すごい単純な質問なんですけど、

<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:???
自己レスです。

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

と繋げればうまくいきました。どうも間にリターンがあったのが原因みたいです。

168 :nobodyさん:03/01/06 07:36 ID:???
DTDで
<!ENTITY foo SYSTEM "bar.xml">

を XML schema で表現するにはどうすればいいんですか?

169 :nobodyさん:03/01/06 07:44 ID:L2+zJcVG
しまった、ageておこう

170 :山崎渉:03/01/15 13:36 ID:???
(^^)

171 :nobodyさん:03/01/22 05:21 ID:vujRJlnb
i love love generation

172 :ぱむ:03/01/28 17:32 ID:IBfGocF/
cocoonのsitemap.xmapで2つ以上のxmlを1つのxslに適用したい場合は
どうすればいいんですか?
<map:generate src="aaa.xml"/>
<map:generate src="bbb.xml"/>
<map:transform src="ccc.xsl"/>
とすると「適用出来るxmlは1つだけ」というエラーが出てしまいます。
だれか宜しくお願いします。


173 :nobodyさん:03/01/29 13:27 ID:L9yee78Z
xmlは死んだ

174 :nobodyさん:03/02/11 22:52 ID:K0N8t3Ee
xmlは死んだ

175 :nobodyさん:03/02/12 17:42 ID:rtj1FkeB
MS、XDocsの正式名称「InfoPath」発表

http://www.zdnet.co.jp/news/0302/12/nebt_21.html

MicrosoftはInfoPathで作成したフォームを使い
医療電子データ交換用形式で送るデモも実施。
同社はXFormsではなくXSLTの採用を決定



176 :nobodyさん:03/02/12 17:56 ID:gzTJY/OJ
http://www.agemasukudasai.com/bloom/

177 :nobodyさん:03/02/20 19:11 ID:ywFHezDA
名前空間接頭辞 foo と bar を使った xml 文書があります.
----------
<foo:root xmlns:foo="http://foo-namespace" xmlns:bar="http://bar-namespace">
 <bar:e1>this is <foo:e2>a</foo:e2> pen. </bar:e1>
</foo:root>
----------
これを以下の xslt に食わせて,
foo に属する要素を全て bar の要素に変換します.
----------
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:foo="http://foo-namespace" xmlns:bar="http://bar-namespace" version="1.0">
<xsl:output indent="yes" omit-xml-declaration="yes" />
<xsl:template match="foo:root"><bar:root><xsl:apply-templates select="*" /></bar:root></xsl:template>
<xsl:template match="foo:e2"><bar:e2><xsl:value-of select="." /></bar:e2></xsl:template>
<xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy></xsl:template>
</xsl:stylesheet>
----------
すると,以下のような xml 文書 (多少整形してあります) が得られるのですが,
----------
<bar:root xmlns:bar="http://bar-namespace" xmlns:foo="http://foo-namespace">
 <bar:e1>this is <bar:e2>a</bar:e2> pen.</bar:e1>
</bar:root>
----------
結果として全く使われていない foo に対する宣言が文書に含まれてしまいます.
exclude-result-prefixes="foo" を指定しても,bar:e1 要素に宣言が現れるだけで意味がありませんでした.
これを取り除く (最適化?) することはできないのでしょうか.
いや,実害はないんですけど気持ち悪くて...

178 :177:03/02/20 19:13 ID:???
書き込むときに「改行が多い!!」って怒られちゃったので
改行削ったらソースが読みづらくなってしまいました……スマンコ


179 :nobodyさん:03/02/21 01:48 ID:???
>>177
で、変換は何で?

180 :177:03/02/21 10:10 ID:???
>>179
えーと,「何で変換する必要があるの?」という意味でしょうか.

>>177で挙げた例は,現象が再現する最小限のソースでして
(もっと短くできるかもしれませんが),実際は置き換え以外にも色々やってるんです...

181 :nobodyさん:03/02/22 22:09 ID:???
>>180
transformer は何?という意味

182 :177:03/02/23 21:47 ID:ORn8WdNQ
>>181
すいません,書き忘れました.
xalan-java 2.4.D1 です.

183 :山崎渉:03/03/13 17:11 ID:???
(^^)

184 :nobodyさん:03/04/02 23:28 ID:???
ほすさげ

185 :nobodyさん:03/04/07 01:23 ID:???
(MS)XSL+JavaScriptで入力フォーム(UI)を作るという方法論は間違いだったと激しく後悔中。
素直に全部JavaScriptにするか、サーバサイドで作るべきだダタヨ。

186 :nobodyさん:03/04/07 01:46 ID:uo8jDP5o
ん。XForm ではなくて、XSLで?

187 :山崎渉:03/04/17 12:08 ID:???
(^^)

188 :nobodyさん:03/04/19 11:48 ID:4Vo7Hobj
あの・・・XSLTってタグ自身を出力できない?
下の様にすると全タグについて定義しなくてはならなくなってしまう・・

<xsl:template match="ABCD">
  <ABCD>
  <xsl:apply-template/>
  </ABCD>
</xsl:template>

やりたいことは
xmlの一部のタグだけ変換したいのですが
それ以外はそのままのタグで出力したいのです
copy-of とか使うと編集できないし。。。

すごくくだらない質問ですみませんが教えていただけないでしょうか?

189 :nobodyさん:03/04/20 04:35 ID:???
>>188

<xsl:template match="ABCD">
  <xsl:element name="{local-name()}">
  <xsl:apply-template/>
  </xsl:element>
</xsl:template>

ABCD をワイルドカードにすると全部引っかかる。

190 :山崎渉:03/04/20 06:00 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

191 :nobodyさん:03/05/19 12:22 ID:UmHfFrg2
いい書籍ない?
オライリーのはわかりにくい。


192 :山崎渉:03/05/22 02:00 ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

193 :山崎渉:03/05/28 17:20 ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

194 :山崎 渉:03/07/15 11:14 ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

195 :山崎 渉:03/08/02 02:37 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

196 :ぼるじょあ ◆ySd1dMH5Gk :03/08/02 05:19 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

197 :山崎 渉:03/08/15 22:59 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

61 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)