XSL/XSLT
1名無しさん@お腹いっぱい。
01/09/05 10:49ID:dYMWGvtU 語ろう。ていうか教えて。
152nobodyさん
02/10/07 05:30ID:???153nobodyさん
02/10/11 04:30ID:??? XSLTパーサのXERCESをインストールしようとしているのですが,うまくいきません.
解凍した後,コマンドラインから
SET CLASSPATH=%CLASSPATH%;C:\Xerces\xerces.jar
と入力しましたが,サンプルで試した所,
Exception in thresd "main" java.lang.NoClassDeFoundError
となってしまいました.バージョンは2.2.0です.
お分かりになる方,よろしくお願いします.
解凍した後,コマンドラインから
SET CLASSPATH=%CLASSPATH%;C:\Xerces\xerces.jar
と入力しましたが,サンプルで試した所,
Exception in thresd "main" java.lang.NoClassDeFoundError
となってしまいました.バージョンは2.2.0です.
お分かりになる方,よろしくお願いします.
154nobodyさん
02/10/15 01:38ID:okBjBmnc155nobodyさん
02/10/29 00:17ID:??? XMLからXSLT変換で、違う形式のXMLファイルを出力したとしよう。
変換後のXMLファイルと、変換に使ったXSLTファイルを用いて、
元のXMLファイルを再現できるものだろうか?
変換
XML[A] + XSLT → XML[B]
戻す。
XML[B]の情報 + XSLTの情報 → XML[A]
変換後のXMLファイルと、変換に使ったXSLTファイルを用いて、
元のXMLファイルを再現できるものだろうか?
変換
XML[A] + XSLT → XML[B]
戻す。
XML[B]の情報 + XSLTの情報 → XML[A]
157nobodyさん
02/10/29 23:52ID:??? 完全な再現は出来ないと思う。
同じXSLTを使って、おなじXML[B]を生成するのなら、出切るかもしれない。
いや、正直わからん。俺頭悪いし。
同じXSLTを使って、おなじXML[B]を生成するのなら、出切るかもしれない。
いや、正直わからん。俺頭悪いし。
158八べえ
02/11/12 15:09ID:gxn/By35 Cocoon2を使用して、WEB表示を行うとソースに
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
が追記されてしまいます。
これにより、Shift-JISで書いているxml,xsltが文字化けを起こしています。
sitemap.xmap,cocoon.xconfをみてもそれらしき設定が見当たりません。
どのようにしたら、追記されなくなるのでしょうか?
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
が追記されてしまいます。
これにより、Shift-JISで書いているxml,xsltが文字化けを起こしています。
sitemap.xmap,cocoon.xconfをみてもそれらしき設定が見当たりません。
どのようにしたら、追記されなくなるのでしょうか?
159bloom
02/11/12 15:36ID:VFQMwTMk160HTMLをSJISで表示
02/11/13 10:55ID: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
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
161XMLをSJISで出力
02/11/13 11:03ID:oYHYr3JM hello.html を指定すると UTF-8版が表示され、
hello-sjis.html を指定すると、 SJIS版が表示されるようになる。
別件だが
xml の出力の中の encoding=UTF-8 を変更する場合は、xslt の中で、
<xsl:output omit-xml-declaration="no" encoding="Shift_JIS"/>
とかやると良い。
hello-sjis.html を指定すると、 SJIS版が表示されるようになる。
別件だが
xml の出力の中の encoding=UTF-8 を変更する場合は、xslt の中で、
<xsl:output omit-xml-declaration="no" encoding="Shift_JIS"/>
とかやると良い。
163教えて下さい
02/11/13 17:52ID:fcqFiIq0 xslの全ての<xsl:value-of select=....>の項目に、
「disable-output-escaping="yes"」を指定したいのですが、
まとめて設定するにはどのようにしたらよいのでしょうか?
「disable-output-escaping="yes"」を指定したいのですが、
まとめて設定するにはどのようにしたらよいのでしょうか?
164nobodyさん
02/11/15 22:35ID:Q0ofQCcS disable-output-escaping="yes" を <xsl:value-of に追加する
XSLT を書いて XSLT を変換...
XSLT を書いて XSLT を変換...
165nobodyさん
02/11/15 23:27ID:y2tgiCuR エディタで一括変換
166nobodyさん
02/12/09 01:32ID: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 のように別ウィンドウを開かないでリンク先を表示させるにはどうすればいいのでしょうか?
<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 のように別ウィンドウを開かないでリンク先を表示させるにはどうすればいいのでしょうか?
167166
02/12/09 01:51ID:??? 自己レスです。
<xsl:attribute name="target">_self</xsl:attribute>
と繋げればうまくいきました。どうも間にリターンがあったのが原因みたいです。
<xsl:attribute name="target">_self</xsl:attribute>
と繋げればうまくいきました。どうも間にリターンがあったのが原因みたいです。
168nobodyさん
03/01/06 07:36ID:??? DTDで
<!ENTITY foo SYSTEM "bar.xml">
を XML schema で表現するにはどうすればいいんですか?
<!ENTITY foo SYSTEM "bar.xml">
を XML schema で表現するにはどうすればいいんですか?
169nobodyさん
03/01/06 07:44ID:L2+zJcVG しまった、ageておこう
170山崎渉
03/01/15 13:36ID:??? (^^)
171nobodyさん
03/01/22 05:21ID:vujRJlnb i love love generation
172ぱむ
03/01/28 17:32ID: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つだけ」というエラーが出てしまいます。
だれか宜しくお願いします。
どうすればいいんですか?
<map:generate src="aaa.xml"/>
<map:generate src="bbb.xml"/>
<map:transform src="ccc.xsl"/>
とすると「適用出来るxmlは1つだけ」というエラーが出てしまいます。
だれか宜しくお願いします。
173nobodyさん
03/01/29 13:27ID:L9yee78Z xmlは死んだ
174nobodyさん
03/02/11 22:52ID:K0N8t3Ee xmlは死んだ
175nobodyさん
03/02/12 17:42ID:rtj1FkeB MS、XDocsの正式名称「InfoPath」発表
http://www.zdnet.co.jp/news/0302/12/nebt_21.html
MicrosoftはInfoPathで作成したフォームを使い
医療電子データ交換用形式で送るデモも実施。
同社はXFormsではなくXSLTの採用を決定
http://www.zdnet.co.jp/news/0302/12/nebt_21.html
MicrosoftはInfoPathで作成したフォームを使い
医療電子データ交換用形式で送るデモも実施。
同社はXFormsではなくXSLTの採用を決定
176nobodyさん
03/02/12 17:56ID:gzTJY/OJ177nobodyさん
03/02/20 19:11ID: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 要素に宣言が現れるだけで意味がありませんでした.
これを取り除く (最適化?) することはできないのでしょうか.
いや,実害はないんですけど気持ち悪くて...
----------
<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 要素に宣言が現れるだけで意味がありませんでした.
これを取り除く (最適化?) することはできないのでしょうか.
いや,実害はないんですけど気持ち悪くて...
178177
03/02/20 19:13ID:??? 書き込むときに「改行が多い!!」って怒られちゃったので
改行削ったらソースが読みづらくなってしまいました……スマンコ
改行削ったらソースが読みづらくなってしまいました……スマンコ
180177
03/02/21 10:10ID:???182177
03/02/23 21:47ID:ORn8WdNQ183山崎渉
03/03/13 17:11ID:??? (^^)
184nobodyさん
03/04/02 23:28ID:??? ほすさげ
185nobodyさん
03/04/07 01:23ID:??? (MS)XSL+JavaScriptで入力フォーム(UI)を作るという方法論は間違いだったと激しく後悔中。
素直に全部JavaScriptにするか、サーバサイドで作るべきだダタヨ。
素直に全部JavaScriptにするか、サーバサイドで作るべきだダタヨ。
186nobodyさん
03/04/07 01:46ID:uo8jDP5o ん。XForm ではなくて、XSLで?
187山崎渉
03/04/17 12:08ID:??? (^^)
188nobodyさん
03/04/19 11:48ID:4Vo7Hobj あの・・・XSLTってタグ自身を出力できない?
下の様にすると全タグについて定義しなくてはならなくなってしまう・・
<xsl:template match="ABCD">
<ABCD>
<xsl:apply-template/>
</ABCD>
</xsl:template>
やりたいことは
xmlの一部のタグだけ変換したいのですが
それ以外はそのままのタグで出力したいのです
copy-of とか使うと編集できないし。。。
すごくくだらない質問ですみませんが教えていただけないでしょうか?
下の様にすると全タグについて定義しなくてはならなくなってしまう・・
<xsl:template match="ABCD">
<ABCD>
<xsl:apply-template/>
</ABCD>
</xsl:template>
やりたいことは
xmlの一部のタグだけ変換したいのですが
それ以外はそのままのタグで出力したいのです
copy-of とか使うと編集できないし。。。
すごくくだらない質問ですみませんが教えていただけないでしょうか?
189nobodyさん
03/04/20 04:35ID:??? >>188
<xsl:template match="ABCD">
<xsl:element name="{local-name()}">
<xsl:apply-template/>
</xsl:element>
</xsl:template>
ABCD をワイルドカードにすると全部引っかかる。
<xsl:template match="ABCD">
<xsl:element name="{local-name()}">
<xsl:apply-template/>
</xsl:element>
</xsl:template>
ABCD をワイルドカードにすると全部引っかかる。
190山崎渉
03/04/20 06:00ID:??? ∧_∧
( ^^ )< ぬるぽ(^^)
( ^^ )< ぬるぽ(^^)
191nobodyさん
03/05/19 12:22ID:UmHfFrg2 いい書籍ない?
オライリーのはわかりにくい。
オライリーのはわかりにくい。
192山崎渉
03/05/22 02:00ID:??? ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
193山崎渉
03/05/28 17:20ID:??? ∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
194山崎 渉
03/07/15 11:14ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
195山崎 渉
03/08/02 02:37ID:??? ∧_∧
( ^^ )< ぬるぽ(^^)
( ^^ )< ぬるぽ(^^)
196ぼるじょあ ◆ySd1dMH5Gk
03/08/02 05:19ID:??? ∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
197山崎 渉
03/08/15 22:59ID:??? (⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
198nobodyさん
03/09/07 21:17ID:PQrT+UlA <x>a b c <y>d</y> e <y>f</y> <y>g</y> h</x>
を
<p>a b c <q>d</q> e <q>f</q> <q>g</q> h</p>
に変換する XSL が分からん。for-each じゃ出来ないよね?
を
<p>a b c <q>d</q> e <q>f</q> <q>g</q> h</p>
に変換する XSL が分からん。for-each じゃ出来ないよね?
199nobodyさん
03/09/07 23:33ID:X8dU+/Y3 xにマッチしてpにおきかえるテンプレートと
yにマッチしてqにおきかえるテンプレートをかけばいいだけじゃんよ
yにマッチしてqにおきかえるテンプレートをかけばいいだけじゃんよ
201nobodyさん
03/09/26 10:15ID:Hq0iAR6d <date>9月2日</date>
<title>ちょっとここを通られた</title>
<p>なぞの白い物体に我が家をあらされてしまった。</p>
<p>訴訟を起こして謝罪と賠償を要求したい。</p>
を
<div class="section">
<h2><date>9月2日</h2>
<div class="subsection">
<h3>ちょっとここを通られた</h3>
<p>なぞの白い物体に我が家をあらされてしまった。</p>
<p>訴訟を起こして謝罪と賠償を要求したい。</p>
</div>
</div>
と変換するにはXSLTをどう書けばいいのでしょうか。
<title>ちょっとここを通られた</title>
<p>なぞの白い物体に我が家をあらされてしまった。</p>
<p>訴訟を起こして謝罪と賠償を要求したい。</p>
を
<div class="section">
<h2><date>9月2日</h2>
<div class="subsection">
<h3>ちょっとここを通られた</h3>
<p>なぞの白い物体に我が家をあらされてしまった。</p>
<p>訴訟を起こして謝罪と賠償を要求したい。</p>
</div>
</div>
と変換するにはXSLTをどう書けばいいのでしょうか。
204nobodyさん
03/09/26 22:18ID:??? >>203
整形式にしなきゃいけないのは変換前のほうなんだが。
本当にやりたいことは別にあるんじゃないかとも思うが、
とりあえず、親要素を???とすれば、こんな感じ。
<xsl:template match="???">
<div class="section">
<xsl:apply-templates select="date" />
<div class="subsection">
<xsl:apply-templates select="title" />
<xsl:apply-templates select="p" />
</div>
</div>
</xsl:template>
<xsl:template match="date"><h2><xsl:xsl:apply-templates /></h2></xsl:template>
<xsl:template match="title"><h3><xsl:xsl:apply-templates /></h3></xsl:template>
<xsl:template match="p"><p><xsl:xsl:apply-templates /></p></xsl:template>
整形式にしなきゃいけないのは変換前のほうなんだが。
本当にやりたいことは別にあるんじゃないかとも思うが、
とりあえず、親要素を???とすれば、こんな感じ。
<xsl:template match="???">
<div class="section">
<xsl:apply-templates select="date" />
<div class="subsection">
<xsl:apply-templates select="title" />
<xsl:apply-templates select="p" />
</div>
</div>
</xsl:template>
<xsl:template match="date"><h2><xsl:xsl:apply-templates /></h2></xsl:template>
<xsl:template match="title"><h3><xsl:xsl:apply-templates /></h3></xsl:template>
<xsl:template match="p"><p><xsl:xsl:apply-templates /></p></xsl:template>
205nobodyさん
03/10/10 20:26ID:??? 俺はサイトの文法は
<section>
<title>TITLE</title>
<sentences><p></p>....</sentences>
<section>
<title>子セクションTITLE</title>
<sentences><p></p>....</sentences>
</section>
<section>
<title>子セクションTITLE</title>(以下略&再帰的な文法)
</section>
</section>
にしてる。
<section>
<title>TITLE</title>
<sentences><p></p>....</sentences>
<section>
<title>子セクションTITLE</title>
<sentences><p></p>....</sentences>
</section>
<section>
<title>子セクションTITLE</title>(以下略&再帰的な文法)
</section>
</section>
にしてる。
207nobodyさん
03/10/17 21:05ID:ckGd54O2 質問です。
XSLTで、元の構造を保ったまま、
XMLのテキストを一部分だけ変えるというのは簡単に出来るのでしょうか?
例えば、簡単な例ですが、
<A>
<B>hoge</B>
</A>
とあったときにhogeを何か別の文字列に変換したいという事です。
やはりその構造にあった、スタイルシートを書くしかないのでしょうか?
XSLTで、元の構造を保ったまま、
XMLのテキストを一部分だけ変えるというのは簡単に出来るのでしょうか?
例えば、簡単な例ですが、
<A>
<B>hoge</B>
</A>
とあったときにhogeを何か別の文字列に変換したいという事です。
やはりその構造にあった、スタイルシートを書くしかないのでしょうか?
211nobodyさん
03/10/19 17:43ID:??? XMLをXSLでHTMLに変換して、↓のような感じにしたいです。
何がしたいのかというとページ内リンクがしたくて、
c要素を変換した(1*)や(*2)などを押すと、
f要素の(*1)や(*2)に飛びたいのです。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="sample.xsl" type="text/XSL"?>
<A>
<b>テキスト1<c id="A" /></b>
<b>テキスト2<c id="B" /></b>
<b>テキスト3<c id="A" /></b>
<b>テキスト4<c id="A" /></b>
<e>
<f id="A">参照テキスト</f>
<f id="B">参照テキスト</f>
</e>
</a>
↓変換↓
テキスト1(*1)
テキスト2(*2)
テキスト3(*1)
テキスト4(*1)
(*1)参照テキスト
(*2)参照テキスト
何がしたいのかというとページ内リンクがしたくて、
c要素を変換した(1*)や(*2)などを押すと、
f要素の(*1)や(*2)に飛びたいのです。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="sample.xsl" type="text/XSL"?>
<A>
<b>テキスト1<c id="A" /></b>
<b>テキスト2<c id="B" /></b>
<b>テキスト3<c id="A" /></b>
<b>テキスト4<c id="A" /></b>
<e>
<f id="A">参照テキスト</f>
<f id="B">参照テキスト</f>
</e>
</a>
↓変換↓
テキスト1(*1)
テキスト2(*2)
テキスト3(*1)
テキスト4(*1)
(*1)参照テキスト
(*2)参照テキスト
212211の続き
03/10/19 17:44ID:???ページ内リンク自体は簡単にできるのですが、
(*1)、(*2)などの番号を振るのが難しいです。
f要素の番号は単純にnumberでカウントしているのですが、
c要素での番号が振れません。
xslはネットをうろついて見つけた近そうなものを
参考にしながら、こんな感じになっています。
↓
213212の続き
03/10/19 17:48ID:??? <?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0" encoding="Shift_JIS" />
<xsl:template match="/">
<html><head><title>sample</title></head><body>
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="b">
<div><xsl:apply-templates /></div>
</xsl:template>
<xsl:template match="c">
<xsl:variable name="ID" select="@id" />
<xsl:element name="a">
<xsl:attribute name="href">#<xsl:value-of select="@id" /></xsl:attribute>
(*<xsl:number count="f" /><xsl:value-of select="../../e/f/@id[../@id=$ID]" />)
</xsl:element>
<xsl:apply-templates />
</xsl:template>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0" encoding="Shift_JIS" />
<xsl:template match="/">
<html><head><title>sample</title></head><body>
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="b">
<div><xsl:apply-templates /></div>
</xsl:template>
<xsl:template match="c">
<xsl:variable name="ID" select="@id" />
<xsl:element name="a">
<xsl:attribute name="href">#<xsl:value-of select="@id" /></xsl:attribute>
(*<xsl:number count="f" /><xsl:value-of select="../../e/f/@id[../@id=$ID]" />)
</xsl:element>
<xsl:apply-templates />
</xsl:template>
214213の続き
03/10/19 17:49ID:??? <xsl:template match="f">
<div>
<xsl:element name="a">
<xsl:attribute name="name"><xsl:value-of select="@id" /></xsl:attribute>
(*<xsl:number count="f" />)
</xsl:element>
<xsl:apply-templates />
</div>
</xsl:template>
</xsl:stylesheet>
f要素にマッチングさせたnumberをとかを取得できればいいのかなーと思って、
いろいろと考えてみたのですが、↑まで書いたところで???になりました。
どなたかお知恵を貸してください。。。。
<div>
<xsl:element name="a">
<xsl:attribute name="name"><xsl:value-of select="@id" /></xsl:attribute>
(*<xsl:number count="f" />)
</xsl:element>
<xsl:apply-templates />
</div>
</xsl:template>
</xsl:stylesheet>
f要素にマッチングさせたnumberをとかを取得できればいいのかなーと思って、
いろいろと考えてみたのですが、↑まで書いたところで???になりました。
どなたかお知恵を貸してください。。。。
215nobodyさん
03/11/29 01:53ID:0RUQwDGu どうか皆様のお力をお借りしたく思います。
xmlが
<item>
<text>
ああああああああああ
ああああああああああ
ああああああああああ
</text>
<text>
いいいいい<em>イイイイイ</em> <br />
いいいいいいいいいい <br />
いいいいいいいいいい <br />
</text>
</item>
このように与えられていて、これを
<!-- タグ付きで、そのまま出力 -->
<p>
ああああああああああ
ああああああああああ
ああああああああああ
</p>
<p>
いいいいい<em>イイイイイ</em> <br />
いいいいいいいいいい <br />
いいいいいいいいいい <br />
</p>
<!-- タグを削って 32bytes に切り詰め、最後の 3bytes を '...' に変換し、出力 -->
<p>ああああああああああああああ ...</p>
<p>いいいいいイイイイイいいいい ...</p>
このように出力したいのですが、xslはどのように書けばよいのでしょうか。
xmlが
<item>
<text>
ああああああああああ
ああああああああああ
ああああああああああ
</text>
<text>
いいいいい<em>イイイイイ</em> <br />
いいいいいいいいいい <br />
いいいいいいいいいい <br />
</text>
</item>
このように与えられていて、これを
<!-- タグ付きで、そのまま出力 -->
<p>
ああああああああああ
ああああああああああ
ああああああああああ
</p>
<p>
いいいいい<em>イイイイイ</em> <br />
いいいいいいいいいい <br />
いいいいいいいいいい <br />
</p>
<!-- タグを削って 32bytes に切り詰め、最後の 3bytes を '...' に変換し、出力 -->
<p>ああああああああああああああ ...</p>
<p>いいいいいイイイイイいいいい ...</p>
このように出力したいのですが、xslはどのように書けばよいのでしょうか。
216215
03/11/30 02:13ID:??? 「タグ付きで、そのまま出力」 は xsl:copy-of を使用して解決しました。
「タグを削って 32bytes に切り詰め、最後の 3bytes を '...' に変換し、出力」 は未解決です。
どなたか御協力を賜りたく思います。
「タグを削って 32bytes に切り詰め、最後の 3bytes を '...' に変換し、出力」 は未解決です。
どなたか御協力を賜りたく思います。
217nobodyさん
03/11/30 02:59ID:??? 仕様書読んだことある?
プログラミング言語の経験は?
プログラミング言語の経験は?
218215
03/11/30 05:20ID:??? 「タグを削って 32bytes に切り詰め、最後の 3bytes を '...' に変換し、出力」 も自己解決しました。
お騒がせして御免なさい。
>217
>仕様書
少しは読みますが、リファレンス的です。
>プログラミング言語
c/c++ を使う事が出来ます。
お騒がせして御免なさい。
>217
>仕様書
少しは読みますが、リファレンス的です。
>プログラミング言語
c/c++ を使う事が出来ます。
219nobodyさん
04/01/02 03:53ID:goN3d3Pm XSLTで1つのXMLファイル上に存在するn件のデータを50件ずつ表示を
行いたいんだけど、そういうことって簡単にできますか?
どんな感じで実装すれば良いのかご存知の方教えてください。
javascriptでXSLTを触らないとダメなのかな・・。
行いたいんだけど、そういうことって簡単にできますか?
どんな感じで実装すれば良いのかご存知の方教えてください。
javascriptでXSLTを触らないとダメなのかな・・。
220nobodyさん
04/01/02 13:08ID:???221nobodyさん
04/01/02 14:59ID:goN3d3Pm223nobodyさん
04/01/02 16:08ID:goN3d3Pm >>222
え・・そうなんすか。
ホントXML全然知らないんで、とんちんかんなレスになっちゃうかも
しれないけど、XSLTってユーザーの入力値にマッチした情報の抽出を行うとか、
そういう制御は得意かと思っていたんですが違うんですか?
それはサーバサイドでやるべき事っていうことですか。
根本的なところを理解していなかったか・・_| ̄|〇ガックリ
え・・そうなんすか。
ホントXML全然知らないんで、とんちんかんなレスになっちゃうかも
しれないけど、XSLTってユーザーの入力値にマッチした情報の抽出を行うとか、
そういう制御は得意かと思っていたんですが違うんですか?
それはサーバサイドでやるべき事っていうことですか。
根本的なところを理解していなかったか・・_| ̄|〇ガックリ
225nobodyさん
04/01/10 22:17ID:??? 保守。
♥
?
?x2665;
♥
?
?x2665;
226nobodyさん
04/01/14 03:43ID:??? 不具合か
Mozillaでバッチリなのに IE で真っ白ってどういうことだ
Mozillaでバッチリなのに IE で真っ白ってどういうことだ
227225
04/01/17 15:58ID:??? 順番を入れ替えただけでうまくいくってのはどういうこった
228227
04/01/17 15:59ID:??? 名前は226だった
229226 227 228
04/01/17 16:17ID:??? >>221
外部パラメータを与えるxmlを用意すれば、やりたい事をかなえてくれる
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet version="1.0" encoding="UTF-8" type="text/xsl" href="page.xsl" ?>
<page index="50">
</page>
みたいな中身のないxmlを用意し、xslで <xsl:param name="index" select="/page/@index" /> をよませるのだ。
xslでは 220の <xsl:if test=" ( $index < position() ) and ( position() <= $index + 50 )"> を使う。
page.xml (中身あり) では<page index="0">、
page1.xml (中身なし) では<page index="50">、
page2.xml (中身なし) では<page index="100">、
page3.xml (中身なし) では<page index="150">、と書いておく。
page.xsl では <xsl:copy-of select="document( "page.xml" )/page/foo" /> みたいな、ドキュメントを指定した形で読み込む。
( select="/page/foo" では不可能。<xsl:template match="/page/foo"> も恐らく無理 )
おすすめは xsl:for-each
<xsl:template match="/page">
<xsl:param name="index" select="/page/@index" />
<xsl:for-each select="document( "page.xml" )/page/foo">
<xsl:if test=" ( $index < position() ) and ( position() <= $index + 50 )">
<xsl:copy-of select="current()" />
</xsl:if>
</xsl:for-each>
</xsl:template>
と、こんな感じではないかな。
ところどころ間違いがあるかもしれないが、その辺は勘弁してくれ
外部パラメータを与えるxmlを用意すれば、やりたい事をかなえてくれる
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet version="1.0" encoding="UTF-8" type="text/xsl" href="page.xsl" ?>
<page index="50">
</page>
みたいな中身のないxmlを用意し、xslで <xsl:param name="index" select="/page/@index" /> をよませるのだ。
xslでは 220の <xsl:if test=" ( $index < position() ) and ( position() <= $index + 50 )"> を使う。
page.xml (中身あり) では<page index="0">、
page1.xml (中身なし) では<page index="50">、
page2.xml (中身なし) では<page index="100">、
page3.xml (中身なし) では<page index="150">、と書いておく。
page.xsl では <xsl:copy-of select="document( "page.xml" )/page/foo" /> みたいな、ドキュメントを指定した形で読み込む。
( select="/page/foo" では不可能。<xsl:template match="/page/foo"> も恐らく無理 )
おすすめは xsl:for-each
<xsl:template match="/page">
<xsl:param name="index" select="/page/@index" />
<xsl:for-each select="document( "page.xml" )/page/foo">
<xsl:if test=" ( $index < position() ) and ( position() <= $index + 50 )">
<xsl:copy-of select="current()" />
</xsl:if>
</xsl:for-each>
</xsl:template>
と、こんな感じではないかな。
ところどころ間違いがあるかもしれないが、その辺は勘弁してくれ
230nobodyさん
04/01/26 15:30ID:TZ0JMGYO データの格納をXMLに任せて、フォーム使ったCGI作りたいのですけど
よいサンプルページないですか?
表示はXHTMLでやってます。
よいサンプルページないですか?
表示はXHTMLでやってます。
231nobodyさん
04/01/27 19:27ID:b8cLgywQ <item name="WebSite" href="URL" />のような一風変わったXMLがありまして,
XSLを使ってリンクになっているHTMLを作りたいのですが,
<a href="<xsl:value-of select="./@href">"><xsl:value-of select="./@name"/></a>
のような記述をしますと,<が入れ子になっているのでエラーになってしまいます.
<xsl:text>で囲って<に置き換えたりしても駄目でした.
一体,どの様にしたら良いのでしょうか?宜しくお願いします.
XSLを使ってリンクになっているHTMLを作りたいのですが,
<a href="<xsl:value-of select="./@href">"><xsl:value-of select="./@name"/></a>
のような記述をしますと,<が入れ子になっているのでエラーになってしまいます.
<xsl:text>で囲って<に置き換えたりしても駄目でした.
一体,どの様にしたら良いのでしょうか?宜しくお願いします.
232nobodyさん
04/01/27 19:36ID:???233231
04/01/27 20:03ID:??? >>232
有難うございます.おっしゃる通り,@ITの記事を読んだだけの厨房です.
xsl:attributeでググったらやり方が分かりました.
仕事で使う際は,本を読んで真面目に勉強させて頂きます.
有難うございました.
同じ疑問を持った方の参考に(いないかな〜),以下で可能だと思われます.
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="./@href"/>
</xsl:attribute>
<xsl:value-of select="./@name"/>
</xsl:element>
有難うございます.おっしゃる通り,@ITの記事を読んだだけの厨房です.
xsl:attributeでググったらやり方が分かりました.
仕事で使う際は,本を読んで真面目に勉強させて頂きます.
有難うございました.
同じ疑問を持った方の参考に(いないかな〜),以下で可能だと思われます.
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="./@href"/>
</xsl:attribute>
<xsl:value-of select="./@name"/>
</xsl:element>
234nobodyさん
04/01/28 02:23ID:??? { } が使えるとかって知らないでしょ?マジで。
235nobodyさん
04/01/28 15:19ID:??? {./@href} で書けるのだが、<a href="..."> みたいな xhtml タグを xslt の中に書かないほうが良いらしい。
<a href="{./@href}"> <xsl:value-of select="./@name"/> </a>
<a href="{./@href}"> <xsl:value-of select="./@name"/> </a>
236nobodyさん
04/01/28 21:56ID:??? xmlをxslt使ってhtmlとかに変換して<a href...を作るには、もとのxmlで<a href=...なんて書けない。
235が正しい。
235が正しい。
237nobodyさん
04/01/29 01:45ID:??? 何言ってんだか。一度は仕様書読めよ。
238232
04/01/29 13:19ID:??? 俺の解答不味かったか。{} じゃなく <xsl:attribute/> を教えたのは俺の趣味と
Google で検索する時のことを考えてだったんだが、正直スマンかった。
で、>>235-236 の論点が良く分からんのだが、何が言いたいの?
Google で検索する時のことを考えてだったんだが、正直スマンかった。
で、>>235-236 の論点が良く分からんのだが、何が言いたいの?
239nobodyさん
04/01/29 13:43ID:??? >>236
( ゚д゚)ポカーン
それはさておき、漏れは {} 使う派。
attributeは、条件(if)によって属性追加する時くらいしか使わない。
多岐分岐(choose〜when)で属性の値を変える場合は、
直前で変数用意して、{} で埋める。
だって、見やすいんだも〜ん
( ゚д゚)ポカーン
それはさておき、漏れは {} 使う派。
attributeは、条件(if)によって属性追加する時くらいしか使わない。
多岐分岐(choose〜when)で属性の値を変える場合は、
直前で変数用意して、{} で埋める。
だって、見やすいんだも〜ん
240nobodyさん
04/01/29 23:46ID:??? xmlをxslt使ってhtmlとかに変換して<a href...を作るには、xslで<a href=...なんて書けない。
かな?
かな?
242nobodyさん
04/01/30 12:10ID:??? in : <item name="2ちゃんねる" href="http://www.2ch.net/"/>
xsl :
<xsl:template match="item">
<a href="{@href}"><xsl:value-of select="@name"/></a>
</xsl:template>
out : <a href="http://www.2ch.net">2ちゃんねる</a>
ってことじゃないのん?
xsl :
<xsl:template match="item">
<a href="{@href}"><xsl:value-of select="@name"/></a>
</xsl:template>
out : <a href="http://www.2ch.net">2ちゃんねる</a>
ってことじゃないのん?
245nobodyさん
04/01/30 22:40ID:??? <xsl:copy-of> で コピーしたノードのタグに、
<hoge xmlns=""> みたいに空欄の名前空間がつくのだが、これはどういう事なのだろうか。
-- hoge.xml --
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet version="1.0" encoding="UTF-8" type="text/xsl" href="./hoge.xsl" ?>
<hoges> hoge is <hoge> HOGE </hoge>. </hoges>
-- hoge.xsl --
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/hoges">
<xsl:copy-of select="text() | * | @*" />
</xsl:template>
</xsl:stylesheet>
-- hoge.html --
hoge is <hoge xmlns="">HOGE </hoge>.
目標は、↓なのだが。
-- hoge.html --
hoge is <hoge> HOGE </hoge>.
<hoge xmlns=""> みたいに空欄の名前空間がつくのだが、これはどういう事なのだろうか。
-- hoge.xml --
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet version="1.0" encoding="UTF-8" type="text/xsl" href="./hoge.xsl" ?>
<hoges> hoge is <hoge> HOGE </hoge>. </hoges>
-- hoge.xsl --
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/hoges">
<xsl:copy-of select="text() | * | @*" />
</xsl:template>
</xsl:stylesheet>
-- hoge.html --
hoge is <hoge xmlns="">HOGE </hoge>.
目標は、↓なのだが。
-- hoge.html --
hoge is <hoge> HOGE </hoge>.
246nobodyさん
04/01/31 01:39ID:??? 出力をHTMLにしたいみたいだけど、とりあえず
xsl:output method="html" とかしてみたら?
xsl:output method="html" とかしてみたら?
248245
04/01/31 15:24ID:??? う、msxmlのバグかな
お騒がせしました。失礼いたします
お騒がせしました。失礼いたします
249nobodyさん
04/02/01 01:23ID:??? JRE1.4.2でもなるよ
250nobodyさん
04/02/21 13:19ID:??? xsltからxsltを出力するときなんかで、{}という文字を含んだ属性を出力したいときにもattribute要素使うな。
一応{'{hoge}'}でいけると思うけどなんか変だし。
一応{'{hoge}'}でいけると思うけどなんか変だし。
251nobodyさん
04/02/21 19:00ID:4PYw/lWY252nobodyさん
04/02/22 17:24ID:??? みなさんXSLの作成は何でやってます?
XSLってもともと可読性にかけるし、
IEだとキャッシュ読んだりエラーがわかりにくかったりしてデバッグが激しくし辛いのだが。
XSLってもともと可読性にかけるし、
IEだとキャッシュ読んだりエラーがわかりにくかったりしてデバッグが激しくし辛いのだが。
レスを投稿する