XSL/XSLT
1名無しさん@お腹いっぱい。
01/09/05 10:49ID:dYMWGvtU 語ろう。ていうか教えて。
337nobodyさん
05/01/30 14:52:43ID:0RSaGusl xmlをエクセルから作ってるんですが、日付が1900年形式でだされてしまいます。
それを表示する際に、dd-mmm-yyのフォーマットで表示したいんですが、どうすればよいでしょうか?
それを表示する際に、dd-mmm-yyのフォーマットで表示したいんですが、どうすればよいでしょうか?
338nobodyさん
05/01/30 20:37:49ID:0RSaGusl339nobodyさん
2005/04/09(土) 23:05:41ID:0FjmIeSR ノード名じゃなくて値がQNameのときに、それが特定のNSに属してるかってどうやって判断できる?
<先祖のどこか xmlns:x="http://pc8.2ch.net/test/read.cgi/php/">
...中略...<ここ この属性の値をチェックしたい="x:999654569"/>
node系関数のnamespace-uri()は値は見れないし、
string系の関数じゃ、xが本当にhttp://pc8.2ch.net/test/read.cgi/php/なのかわからん。
ずうっと名前空間宣言を全部フォローして自分で覚えとくしかないのか?
<先祖のどこか xmlns:x="http://pc8.2ch.net/test/read.cgi/php/">
...中略...<ここ この属性の値をチェックしたい="x:999654569"/>
node系関数のnamespace-uri()は値は見れないし、
string系の関数じゃ、xが本当にhttp://pc8.2ch.net/test/read.cgi/php/なのかわからん。
ずうっと名前空間宣言を全部フォローして自分で覚えとくしかないのか?
340nobodyさん
2005/04/21(木) 17:08:59ID:??? XMLもXSLもXSLTも何も知りません。
Aに1・2という情報?属性?を付けて
Bに2・3を付けて
Cに1を付けて
1が付いているのはA・C
2が付いているのはA・B
3が付いているのはB
というように表示するにはどうすればいいでしょう
Aに1・2という情報?属性?を付けて
Bに2・3を付けて
Cに1を付けて
1が付いているのはA・C
2が付いているのはA・B
3が付いているのはB
というように表示するにはどうすればいいでしょう
342nobodyさん
2005/04/21(木) 22:02:56ID:??? System.out.println("1が付いているのはA・C");
System.out.println("2が付いているのはA・B");
System.out.println("3が付いているのはB");
System.out.println("2が付いているのはA・B");
System.out.println("3が付いているのはB");
343nobodyさん
2005/04/21(木) 23:30:22ID:??? いや>>340的にはこっちのほうがわかりやすかろう。
MsgBox "1が付いているのはA・C", vbInformation
MsgBox "2が付いているのはA・B", vbInformation
MsgBox "3が付いているのはB", vbInformation
MsgBox "1が付いているのはA・C", vbInformation
MsgBox "2が付いているのはA・B", vbInformation
MsgBox "3が付いているのはB", vbInformation
344nobodyさん
2005/07/29(金) 15:21:12ID:??? デフォルトの名前空間が指定されている時、プレフィックスの無い Element は XPath でどう表現すればいいの?
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="design.xsl"?>
<hage:root xmlns="http://example.com" xmlns:hage="http://example.com/hage/">
<item1>あいうえお</item1>
<item2>かきくけこ</item2>
</hage:root>
こんな XML から "あいうえお"を取り出したいんだけど /hage:root/item1 じゃうまくいかないみたい。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="design.xsl"?>
<hage:root xmlns="http://example.com" xmlns:hage="http://example.com/hage/">
<item1>あいうえお</item1>
<item2>かきくけこ</item2>
</hage:root>
こんな XML から "あいうえお"を取り出したいんだけど /hage:root/item1 じゃうまくいかないみたい。
345nobodyさん
2005/08/04(木) 10:02:40ID:??? スタイルシート側(desin.xslのことか?)の名前空間の設定はどうなってる?
携帯だからアドバイスしづらいな…。
まあ多分スタイルシートではxmlns="XHTMLのURI"とかやってると思う。
(これ自体は問題ないし下手にprefixつけるとUAが出力結果をXHTMLとして認識できない。)
でもこの場合あんたのスタイルシート内のXpath式内でitem1を指定しても
それはXHTMLでのitem1要素を指定していることになっている。
もちろんあんたはそんなもの扱った覚えは無いだろうしXHTMLにもそんな要素はない。
正しく処理させるには名前空間について勉強してくれ。
ソースXML文書のprefix無い方の名前空間のURIを$aとおくと、
スタイルシート側にxmlns:omanko="$a"を書き加えXPathではomanko:item1と
指定すればいい。xsl:の部分とかも不都合があればばんばん書き換えればいいから。
携帯からだから妙ちくりんな書き方になったが頑張ってくれ
んじゃ
携帯だからアドバイスしづらいな…。
まあ多分スタイルシートではxmlns="XHTMLのURI"とかやってると思う。
(これ自体は問題ないし下手にprefixつけるとUAが出力結果をXHTMLとして認識できない。)
でもこの場合あんたのスタイルシート内のXpath式内でitem1を指定しても
それはXHTMLでのitem1要素を指定していることになっている。
もちろんあんたはそんなもの扱った覚えは無いだろうしXHTMLにもそんな要素はない。
正しく処理させるには名前空間について勉強してくれ。
ソースXML文書のprefix無い方の名前空間のURIを$aとおくと、
スタイルシート側にxmlns:omanko="$a"を書き加えXPathではomanko:item1と
指定すればいい。xsl:の部分とかも不都合があればばんばん書き換えればいいから。
携帯からだから妙ちくりんな書き方になったが頑張ってくれ
んじゃ
346nobodyさん
2005/08/14(日) 13:37:07ID:XDX8Ip5H 質問です。
UTF8で配信されるXMLをSHIFT_JISでHTML化したい
場合は
@JAVAのXMLパーサーとか使う
AperlとかphpでSOAP
なんていう方法しかありませんか?
現在はXSLTで簡単にスタイルシートあててやってますが
SHIFT_JISで出力するのは無理ぽ。。です。
どうにか方法はありますのでしょうか。。
携帯サイトを運営しているのですが
UTF8じゃ文字ばけするぞゴラァ!という
クレームが多くて困ってます。
UTF8で配信されるXMLをSHIFT_JISでHTML化したい
場合は
@JAVAのXMLパーサーとか使う
AperlとかphpでSOAP
なんていう方法しかありませんか?
現在はXSLTで簡単にスタイルシートあててやってますが
SHIFT_JISで出力するのは無理ぽ。。です。
どうにか方法はありますのでしょうか。。
携帯サイトを運営しているのですが
UTF8じゃ文字ばけするぞゴラァ!という
クレームが多くて困ってます。
347nobodyさん
2005/08/14(日) 15:10:24ID:??? >>346
XSLTのoutput要素のencoding属性使ってもうまくいくと思う。
まぁ、XMLパーサ使ってフィルタプログラム作成するなり、既存のフィルタツールなり使ったほうが
柔軟性はあるが。
<<サンプル>>
■data.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="data.xsl" ?>
<root>
<data>あああ</data>
<data>いいい</data>
</root>
■data.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS" />
<xsl:template match="root">
<html><head><title>utf8->SJIS</title></head><body>
<xsl:for-each select="data">
<xsl:value-of select="text()" /><br />
</xsl:for-each>
</body></html>
</xsl:template>
</xsl:stylesheet>
XSLTのoutput要素のencoding属性使ってもうまくいくと思う。
まぁ、XMLパーサ使ってフィルタプログラム作成するなり、既存のフィルタツールなり使ったほうが
柔軟性はあるが。
<<サンプル>>
■data.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="data.xsl" ?>
<root>
<data>あああ</data>
<data>いいい</data>
</root>
■data.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS" />
<xsl:template match="root">
<html><head><title>utf8->SJIS</title></head><body>
<xsl:for-each select="data">
<xsl:value-of select="text()" /><br />
</xsl:for-each>
</body></html>
</xsl:template>
</xsl:stylesheet>
348nobodyさん
2005/08/14(日) 18:40:08ID:??? >>347氏
ご丁寧に有難う御座います。
<xsl:output method="html" encoding="Shift_JIS" />
なんてタグがあるなんて知りませんでした。。orz
早速、その方法を試してみました。
結果報告
@PCブラウザで見る(IE)
ホワイトアウトしてしまいました。
右クリでエンコード指定でシフトジスにすると表示されました。
A元からUTF8対応携帯で見る
文字化けしてしまいました。
Bシフトジスしか対応していない携帯で見る
うまく表示されるようになりました。
つまり 今まで見えてた@Aは見えなくなりましたが
Bは見えるようになりました。
恐らくブラウザ側ではUTF8として認識しているためだと
思います。
素直にphpのxmlパーサーとかでやりつかね・・・
(php5入ってないので・・・SOAP無理ぽ)
ご丁寧に有難う御座います。
<xsl:output method="html" encoding="Shift_JIS" />
なんてタグがあるなんて知りませんでした。。orz
早速、その方法を試してみました。
結果報告
@PCブラウザで見る(IE)
ホワイトアウトしてしまいました。
右クリでエンコード指定でシフトジスにすると表示されました。
A元からUTF8対応携帯で見る
文字化けしてしまいました。
Bシフトジスしか対応していない携帯で見る
うまく表示されるようになりました。
つまり 今まで見えてた@Aは見えなくなりましたが
Bは見えるようになりました。
恐らくブラウザ側ではUTF8として認識しているためだと
思います。
素直にphpのxmlパーサーとかでやりつかね・・・
(php5入ってないので・・・SOAP無理ぽ)
349nobodyさん
2005/08/14(日) 18:50:00ID:???350nobodyさん
2005/08/14(日) 19:36:51ID:??? >>348
phpでサーバサイドでのXSLT変換か。取りあえず、UTF-8からShift_JISへの変換はできたみたいだね。
phpの話になってスマンが、もしかして、header('Content-Type: text/html; charset=UTF-8');とかなってる?
header('Content-Type: text/html; charset=Shift_JIS');にしてみたら、もしかしたら動くかもね。
phpでサーバサイドでのXSLT変換か。取りあえず、UTF-8からShift_JISへの変換はできたみたいだね。
phpの話になってスマンが、もしかして、header('Content-Type: text/html; charset=UTF-8');とかなってる?
header('Content-Type: text/html; charset=Shift_JIS');にしてみたら、もしかしたら動くかもね。
351nobodyさん
2005/08/14(日) 22:31:27ID:???352344
2005/08/17(水) 20:33:45ID:??? >345
わざわざ携帯から長いレスをサンクス
俺のレスの前が3ヶ月前だったので回答は期待できないと思ってスレみてなかったよorz
結局質問してから別の場所で答えを見つけたんだけど、
XSL で XPATH 書いても XSL で定義した既定のネームスペースは XPath には適用されないってことなんだよな。
なんでそんな変な仕様なのか理解に苦しむけど。
てことで、 XML の既定のネームスペースを XSL 側では Prefix 付きで定義することで解決しました。
わざわざ携帯から長いレスをサンクス
俺のレスの前が3ヶ月前だったので回答は期待できないと思ってスレみてなかったよorz
結局質問してから別の場所で答えを見つけたんだけど、
XSL で XPATH 書いても XSL で定義した既定のネームスペースは XPath には適用されないってことなんだよな。
なんでそんな変な仕様なのか理解に苦しむけど。
てことで、 XML の既定のネームスペースを XSL 側では Prefix 付きで定義することで解決しました。
353nobodyさん
2005/08/18(木) 19:39:40ID:??? ちょっとYOUはまだ勘違いしてるかも…。そこらへんはXSLTはまともな仕様でつよ。
もっと名前空間のよさを感じてちょうだい!!!!
そして私は
もっと名前空間のよさを感じてちょうだい!!!!
そして私は
354344
2005/08/18(木) 22:02:59ID:??? ttp://www2.xml.gr.jp/log.html?MLID=xmlusers&N=5831
あたりを見て >352 のような結論に至ったわけだが、なんか勘違いがある?と思って
改めてリンク先のスレッドを読んでると
ttp://www2.xml.gr.jp/log.html?MLID=xmlusers&N=5842
に
> さらに、XPath式中のQNameを展開するときには、以下のルールが成り立ちます。
> 2. プリフィックスがついていない場合、ネームスペースURIはnullになる。
とあるな。確かに勘違いしてたかも。
> そして私は
続きが気になるよ(´・ω・`)
あたりを見て >352 のような結論に至ったわけだが、なんか勘違いがある?と思って
改めてリンク先のスレッドを読んでると
ttp://www2.xml.gr.jp/log.html?MLID=xmlusers&N=5842
に
> さらに、XPath式中のQNameを展開するときには、以下のルールが成り立ちます。
> 2. プリフィックスがついていない場合、ネームスペースURIはnullになる。
とあるな。確かに勘違いしてたかも。
> そして私は
続きが気になるよ(´・ω・`)
355初心者
2005/09/04(日) 03:53:09ID:??? どうか教えてください。
AWSでxsltを始めたばかりです。
<img>
<xsl:attribute name="src">
<xsl:value-of select="aws:MediumImage/aws:URL" />
</xsl:attribute>
<xsl:attribute name="width">
<xsl:value-of select="aws:MediumImage/aws:Width" />
</xsl:attribute>
<xsl:attribute name="height">
<xsl:value-of select="aws:MediumImage/aws:Height" />
</xsl:attribute>
<xsl:attribute name="alt">
<xsl:value-of select="$amazon_item_name" />
</xsl:attribute>
</img>
とすると、<img src="http://images.amazon.com/images/P/xxx.jpg" width="xxx" height="xxx" alt="xxx">になってしまい、閉じタグをいれることができません。
xsltでどう指定すると閉じタグをいれることができるのでしょうか?
AWSでxsltを始めたばかりです。
<img>
<xsl:attribute name="src">
<xsl:value-of select="aws:MediumImage/aws:URL" />
</xsl:attribute>
<xsl:attribute name="width">
<xsl:value-of select="aws:MediumImage/aws:Width" />
</xsl:attribute>
<xsl:attribute name="height">
<xsl:value-of select="aws:MediumImage/aws:Height" />
</xsl:attribute>
<xsl:attribute name="alt">
<xsl:value-of select="$amazon_item_name" />
</xsl:attribute>
</img>
とすると、<img src="http://images.amazon.com/images/P/xxx.jpg" width="xxx" height="xxx" alt="xxx">になってしまい、閉じタグをいれることができません。
xsltでどう指定すると閉じタグをいれることができるのでしょうか?
356nobodyさん
2005/09/04(日) 10:59:31ID:??? <xsl:output method="xml"/>
をxsl:stylesheetの直下に入れる、かな。
XHTMLでないHTMLとして出力されていると思われ。
をxsl:stylesheetの直下に入れる、かな。
XHTMLでないHTMLとして出力されていると思われ。
357初心者
2005/09/05(月) 02:29:25ID:??? >>356
どうもありがとうございます。
おっしゃる通りの方法でできました。
ただ、新しい問題が発生しました。
お付き合いいただけましたら嬉しいです。
xslt で出力される html は単独の html ではなく
ある html ファイルの <body> 内に include させたいと考えています。
今までは <xsl:output method="html" /> としていて、問題はありませんでしたが
<xsl:output method="xml" /> や <xsl:output method="xhtml" /> にすることにより
xslt によって出力される html の1行目には <?xml version="1.0" encoding="UTF-8"?>
が入ってしまうようになってしまいました。
つまり、<body> 内に <?xml version="1.0" encoding="UTF-8"?> が入ってしまいます。
文法的には問題ないようですが、なんだか気持ち悪いです。
xhtml や xml で出力するのではなく、text みたいな形で出力した方が適当でしょうか?
どうもありがとうございます。
おっしゃる通りの方法でできました。
ただ、新しい問題が発生しました。
お付き合いいただけましたら嬉しいです。
xslt で出力される html は単独の html ではなく
ある html ファイルの <body> 内に include させたいと考えています。
今までは <xsl:output method="html" /> としていて、問題はありませんでしたが
<xsl:output method="xml" /> や <xsl:output method="xhtml" /> にすることにより
xslt によって出力される html の1行目には <?xml version="1.0" encoding="UTF-8"?>
が入ってしまうようになってしまいました。
つまり、<body> 内に <?xml version="1.0" encoding="UTF-8"?> が入ってしまいます。
文法的には問題ないようですが、なんだか気持ち悪いです。
xhtml や xml で出力するのではなく、text みたいな形で出力した方が適当でしょうか?
358初心者
2005/09/05(月) 02:47:17ID:??? ゴメンナサイ。
ググったら見つけました。
<xsl:output method="xml" omit-xml-declaration="yes" /> とすると、XML 宣言をしないようにできるようですが
実際には出力されてしまいます。
なにかおかしいですかね?
ググったら見つけました。
<xsl:output method="xml" omit-xml-declaration="yes" /> とすると、XML 宣言をしないようにできるようですが
実際には出力されてしまいます。
なにかおかしいですかね?
359nobodyさん
2005/09/10(土) 01:33:29ID:??? どっちでもいいけど
alt="{$変数名}"
とは書かないの?
call-templateする予定があるとか??
あと最初以外にXML宣言入るのは文法の問題あるよ。
ただUAが無視してくれているだけだけど。
alt="{$変数名}"
とは書かないの?
call-templateする予定があるとか??
あと最初以外にXML宣言入るのは文法の問題あるよ。
ただUAが無視してくれているだけだけど。
360nobodyさん
2005/09/29(木) 03:07:41ID:??? age
どなたかXSLT2.0の話でも…
どなたかXSLT2.0の話でも…
361nobodyさん
2005/09/29(木) 11:45:59ID:??? XSLTとDSSSLのいいとこどりみたいなXSieve
http://xsieve.sourceforge.net/
http://xsieve.sourceforge.net/
362nobodyさん
2005/10/01(土) 21:07:44ID:??? 今アマゾンウェブサービスでXSLファイルを書いてるのですが
何故かVersion=2005-09-15だと、StyleにXSLファイル指定してもうまくいきません。
AWSでXSLやるときの条件みたいなものって何かありますか?
何故かVersion=2005-09-15だと、StyleにXSLファイル指定してもうまくいきません。
AWSでXSLやるときの条件みたいなものって何かありますか?
363nobodyさん
2005/10/04(火) 17:41:50ID:otfuFaaW XSLTを書いていると、かなり長くなってしまったんですが、XSLTファイルをモジュールや関数みたいに分割することはできますか。
仕様書をみたけど、それらしい機能が見つかりませんでした。
仕様書をみたけど、それらしい機能が見つかりませんでした。
364nobodyさん
2005/10/04(火) 21:01:50ID:??? xsl:include, xsl:import
365nobodyさん
2005/10/04(火) 21:53:53ID:otfuFaaW366nobodyさん
2005/10/15(土) 16:29:33ID:dOz9BDB0 XSLについて質問です。
DBから取得したデータをXMLに出力し、それをXSLTでXSLに変換かけたいと思ってます。
そこで下記のコードなんですが
<A>
<B key="test1" value="aaa1" />
<B key="test2" value="aaa2" />
</A>
<C>
<D value="" />
</C>
Dのvalueの値にBのvalueの値を入れたいと思ってます。
イメージ的には、/D/@value = /B/key["test"]@value ?? なんですが、/A/B[1]/@valueのように
番号ではなくkeyの名前で参照するにはどうやればよいのでしょうか。
DBから取得したデータをXMLに出力し、それをXSLTでXSLに変換かけたいと思ってます。
そこで下記のコードなんですが
<A>
<B key="test1" value="aaa1" />
<B key="test2" value="aaa2" />
</A>
<C>
<D value="" />
</C>
Dのvalueの値にBのvalueの値を入れたいと思ってます。
イメージ的には、/D/@value = /B/key["test"]@value ?? なんですが、/A/B[1]/@valueのように
番号ではなくkeyの名前で参照するにはどうやればよいのでしょうか。
367サッカー少年大好き
2005/10/15(土) 17:00:04ID:??? /child::A/child::*[attribute::key='str']/attribute::value
でいけると思われ。
(child::は省略可、attribute::は@に置換可)
結論を言うと、XPathの勉強をおすすめする。
でいけると思われ。
(child::は省略可、attribute::は@に置換可)
結論を言うと、XPathの勉強をおすすめする。
368訂正
2005/10/15(土) 17:04:51ID:??? child::*はchild::Bにした方がいいかもしんね。
strにはkeyの値を入れるんだよ。
strにはkeyの値を入れるんだよ。
369nobodyさん
2005/10/15(土) 21:29:57ID:??? 出来ましたありがとうございます。
本来なら勉強しなきゃいけないんですが、助かりました。
本来なら勉強しなきゃいけないんですが、助かりました。
370nobodyさん
2005/10/17(月) 19:35:15ID:SiiJse0Y ソースは
http://www.wakkaya.com/test/a.xmlと
http://www.wakkaya.com/test/a.xslです。
まず、
<data><a>あああ2003</a><b>21</b></data>
<data><a>あああ2004</a><b>30</b></data>
<data><a>あああ2005</a><b>14</b></data>
<data><a>いいい2003</a><b>30</b></data>
<data><a>いいい2004</a><b>45</b></data>
<data><a>いいい2005</a><b>80</b></data>
<data><a>ううう2003</a><b>99</b></data>
<data><a>ううう2004</a><b>77</b></data>
<data><a>ううう2005</a><b>46</b></data>
という感じのxmlがあります。
<a>に2005が含まれている箇所だけ抽出し、
<b>の大きい順に並べ替えるようにしてから番号を振るようにします。書くと
<xsl:sort select="b" order="descending" data-type="number" />
<xsl:if test="contains(a, '2005')">
<tr>
<td><xsl:number value="position()" /></td>
<td><xsl:value-of select="a" /></td>
<td><xsl:value-of select="b" /></td>
</tr>
</xsl:if>
という感じです。いざxmlを見てみると番号が1、2、3とならずに
2、4、9となるのです。どうやれば1、2、3と表示されますか?
どなたかご教授下さい。何卒宜しくお願い致します。
http://www.wakkaya.com/test/a.xmlと
http://www.wakkaya.com/test/a.xslです。
まず、
<data><a>あああ2003</a><b>21</b></data>
<data><a>あああ2004</a><b>30</b></data>
<data><a>あああ2005</a><b>14</b></data>
<data><a>いいい2003</a><b>30</b></data>
<data><a>いいい2004</a><b>45</b></data>
<data><a>いいい2005</a><b>80</b></data>
<data><a>ううう2003</a><b>99</b></data>
<data><a>ううう2004</a><b>77</b></data>
<data><a>ううう2005</a><b>46</b></data>
という感じのxmlがあります。
<a>に2005が含まれている箇所だけ抽出し、
<b>の大きい順に並べ替えるようにしてから番号を振るようにします。書くと
<xsl:sort select="b" order="descending" data-type="number" />
<xsl:if test="contains(a, '2005')">
<tr>
<td><xsl:number value="position()" /></td>
<td><xsl:value-of select="a" /></td>
<td><xsl:value-of select="b" /></td>
</tr>
</xsl:if>
という感じです。いざxmlを見てみると番号が1、2、3とならずに
2、4、9となるのです。どうやれば1、2、3と表示されますか?
どなたかご教授下さい。何卒宜しくお願い致します。
371nobodyさん
2005/10/17(月) 20:58:48ID:??? positionはfor-eachでselectした時点で決まるので、selectの時点で2005を含むかどうか調べる。
<xsl:for-each select="data[contains(a, '2005')]">
<xsl:sort select="b" order="descending" data-type="number" />
<tr>
<td><xsl:number value="position()" /></td>
<td><xsl:value-of select="a" /></td>
<td><xsl:value-of select="b" /></td>
</tr>
</xsl:for-each>
<xsl:for-each select="data[contains(a, '2005')]">
<xsl:sort select="b" order="descending" data-type="number" />
<tr>
<td><xsl:number value="position()" /></td>
<td><xsl:value-of select="a" /></td>
<td><xsl:value-of select="b" /></td>
</tr>
</xsl:for-each>
373370
2005/10/18(火) 08:05:21ID:??? 連続質問ですみません。ソースは引き続き
http://www.wakkaya.com/test/a.xmlと
http://www.wakkaya.com/test/a.xslです。
今度は、<b>の中身が空の場合は表示しないようにしたいのです。
<xsl:choose>
<xsl:when test="b=''">
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="data[contains(a,'2005')]">
<xsl:sort select="a" order="acsending" data-type="text" />
<tr>
<td><xsl:number value="position()" /></td>
<td><xsl:value-of select="a" /></td>
<td><xsl:value-of select="b" /></td>
</tr>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
と、<a>順で並べ替えるようにしたのですが、しっかり空の要素も表示されてしまいます。
ちなみに、xsl:for-each 以下に xsl:choose を入れると、例のごとく番号が2から始まります。
対処法をお教え頂けませんでしょうか?本当に度々ですみません。
http://www.wakkaya.com/test/a.xmlと
http://www.wakkaya.com/test/a.xslです。
今度は、<b>の中身が空の場合は表示しないようにしたいのです。
<xsl:choose>
<xsl:when test="b=''">
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="data[contains(a,'2005')]">
<xsl:sort select="a" order="acsending" data-type="text" />
<tr>
<td><xsl:number value="position()" /></td>
<td><xsl:value-of select="a" /></td>
<td><xsl:value-of select="b" /></td>
</tr>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
と、<a>順で並べ替えるようにしたのですが、しっかり空の要素も表示されてしまいます。
ちなみに、xsl:for-each 以下に xsl:choose を入れると、例のごとく番号が2から始まります。
対処法をお教え頂けませんでしょうか?本当に度々ですみません。
374nobodyさん
2005/10/18(火) 12:21:24ID:??? >連続質問ですみません。ソースは引き続き
とか書くと相手にされない件
とか書くと相手にされない件
375nobodyさん
2005/10/18(火) 16:18:41ID:EpeUQJeg XSLTで変数使えるのは分かったんだけど、
「x=x+1」のような
インクリメントってできないの?
「x=x+1」のような
インクリメントってできないの?
378nobodyさん
2005/10/19(水) 15:52:23ID:HblKNOzD379nobodyさん
2005/10/19(水) 16:32:01ID:??? そっちよりもXPathを覚えるほうがいいかと。
380nobodyさん
2005/10/20(木) 13:50:48ID:??? >>379
仰せの通りXPathについていろいろ調べたことろ、
<xsl:for-each select="data[contains(name, '3') and uriage > 0 ]">
とするだけでNaNをはじくことが出来ました。
なんか凄い初歩的で恥ずかしい質問であるにもかかわらずお答え下さった皆様方、
この度は誠に有り難う御座います。
これを機会にXPathを精進・・
仰せの通りXPathについていろいろ調べたことろ、
<xsl:for-each select="data[contains(name, '3') and uriage > 0 ]">
とするだけでNaNをはじくことが出来ました。
なんか凄い初歩的で恥ずかしい質問であるにもかかわらずお答え下さった皆様方、
この度は誠に有り難う御座います。
これを機会にXPathを精進・・
382nobodyさん
2005/10/22(土) 20:01:27ID:??? 遅すぎるお前のレスもセンスがねーよw 2chやめろな。
383nobodyさん
2005/10/23(日) 01:17:07ID:??? ん?逆切れかマケウチ君
385nobodyさん
2005/10/24(月) 09:48:44ID:3//Wc9qN HPって「たたむ」って表現するんだ・・・初めてしったよ
386nobodyさん
2005/11/11(金) 13:59:20ID:nEB8ZVf7 xreaでサーバーサイド変換て出来るんですか?
http://www.atmarkit.co.jp/fxml/tecs/006stylelink/06.html
を試してみようと思いましたが
http://sb.xrea.com/showthread.php?t=5996&highlight=xsl
どう見ても無理です。
本当にありがとうございました
http://www.atmarkit.co.jp/fxml/tecs/006stylelink/06.html
を試してみようと思いましたが
http://sb.xrea.com/showthread.php?t=5996&highlight=xsl
どう見ても無理です。
本当にありがとうございました
388nobodyさん
2005/11/11(金) 14:10:06ID:??? インストローリング の検索結果のうち 日本語のページ 約 286 件
389nobodyさん
2005/11/11(金) 20:58:02ID:??? ローリングストーンズのヴォーカル無い曲。
390nobodyさん
2005/11/17(木) 02:28:40ID:??? バージョン2が勧告候補になりますた。
早めに勉強しましょう。
早めに勉強しましょう。
392nobodyさん
2005/11/18(金) 17:50:43ID:???393nobodyさん
2005/12/13(火) 01:57:44ID:???394nobodyさん
2005/12/14(水) 09:14:43ID:???396nobodyさん
2005/12/15(木) 20:20:47ID:??? >>344を書いたの俺だけど間違っているかもしらん。すまん。
XPath式にてdefault namespaceを指定しようとしたら、
nullなnamespaceになるのをならないと勘違いしていた。
とりあえずXPath式内でdefault namespaceのnodesを指定したければ
default namespaceのURIを別のprefixにも指定すればOKだと思う.
(XMLでは一つのURIを複数のprefixに充ててはいけないルールは無い)
まあこんなnullpoな俺だがcandidateなXPath2.0のspecificationをプリントして見てます。
今のところlearnした事柄:
・やっぱり名前空間の仕組みはアレだからdeprecateらしい
・型についての概念が出てくる。XML Schemaの知識が必要。
・XPath2.0はXPath1.0のスーパーセットだお。つまり1.0の式が2.0でも通用するお。
・2.0は少なくともXSLT2.0とXQuery1.0で使用されるお。
・シーケンスっつーのはアイテムたちの順序ある並びだお
・アイテムというのはノードと、リテラルチックな”値”のことだお
もっとセンセーショナルな事実が解ったらまたカキコするお。
でも駄目人間の俺より仕様書を信用するべきだお。
またもや携帯からの書き込みだから妙なことになってるかもしらん。
バイバイ
XPath式にてdefault namespaceを指定しようとしたら、
nullなnamespaceになるのをならないと勘違いしていた。
とりあえずXPath式内でdefault namespaceのnodesを指定したければ
default namespaceのURIを別のprefixにも指定すればOKだと思う.
(XMLでは一つのURIを複数のprefixに充ててはいけないルールは無い)
まあこんなnullpoな俺だがcandidateなXPath2.0のspecificationをプリントして見てます。
今のところlearnした事柄:
・やっぱり名前空間の仕組みはアレだからdeprecateらしい
・型についての概念が出てくる。XML Schemaの知識が必要。
・XPath2.0はXPath1.0のスーパーセットだお。つまり1.0の式が2.0でも通用するお。
・2.0は少なくともXSLT2.0とXQuery1.0で使用されるお。
・シーケンスっつーのはアイテムたちの順序ある並びだお
・アイテムというのはノードと、リテラルチックな”値”のことだお
もっとセンセーショナルな事実が解ったらまたカキコするお。
でも駄目人間の俺より仕様書を信用するべきだお。
またもや携帯からの書き込みだから妙なことになってるかもしらん。
バイバイ
397nobodyさん
2006/03/04(土) 02:07:19ID:c1CTCPap 某所より誘導されました。
XSLT(XPath)で、Textや属性のQNameってどうやって調べれば良いんでしょうか?
例えば、
<ns0:boards xmlns:ns0="http://2ch.net">
<board nick="ns0:webprog"/>
<board nick="ns0:tech"/>
<board nick="ns0:unix"/>
</ns0:boards>
で、
「値が、名前空間が"http://2ch.net"でローカル名が"webprog"の値を持つboard要素」って、
どうやって調べればよいのか…。
全然知らないんですがXPath1.0じゃだめでXPath2.0の●●じゃないと無理とかあるんでしょうか。
XSLT(XPath)で、Textや属性のQNameってどうやって調べれば良いんでしょうか?
例えば、
<ns0:boards xmlns:ns0="http://2ch.net">
<board nick="ns0:webprog"/>
<board nick="ns0:tech"/>
<board nick="ns0:unix"/>
</ns0:boards>
で、
「値が、名前空間が"http://2ch.net"でローカル名が"webprog"の値を持つboard要素」って、
どうやって調べればよいのか…。
全然知らないんですがXPath1.0じゃだめでXPath2.0の●●じゃないと無理とかあるんでしょうか。
398nobodyさん
2006/03/04(土) 02:08:42ID:??? 訂正
×「値が、…
○「属性値が、…
×「値が、…
○「属性値が、…
400nobodyさん
2006/03/04(土) 09:38:14ID:??? >>397
詞ね
<xsl:template match="/boards/board[@nick=concat(name(namespace::*[.='http://2ch.net']),':webprog')]">
<xsl:value-of select="@nick"/>
</xsl:template>
詞ね
<xsl:template match="/boards/board[@nick=concat(name(namespace::*[.='http://2ch.net']),':webprog')]">
<xsl:value-of select="@nick"/>
</xsl:template>
401nobodyさん
2006/03/04(土) 09:45:21ID:??? /boards/ns0:boards/;
402nobodyさん
2006/03/04(土) 12:59:39ID:??? うひ(^_^;)
ありがとうございます。
頂いた答えをヒントにして、苦節1時間、やっと出来ました。
<xsl:template select="/ns0:boards/board/@nick[../namespace::*[local-name(.)=substring-before(string(../@nick),':')] and substring-after(.,':')='webprog']">
<xsl:value-of select="."/>
</xsl:template>
しかし、なんでこんな普通の選択のためにゴリゴリ書くんでしょう…。
>>399が言ってることがまっとうで、
XSLT/XPath/XMLSchema?の仕様の方が逝かれてるのではないか、という気がしてきます…。
ありがとうございます。
頂いた答えをヒントにして、苦節1時間、やっと出来ました。
<xsl:template select="/ns0:boards/board/@nick[../namespace::*[local-name(.)=substring-before(string(../@nick),':')] and substring-after(.,':')='webprog']">
<xsl:value-of select="."/>
</xsl:template>
しかし、なんでこんな普通の選択のためにゴリゴリ書くんでしょう…。
>>399が言ってることがまっとうで、
XSLT/XPath/XMLSchema?の仕様の方が逝かれてるのではないか、という気がしてきます…。
403nobodyさん
2006/03/04(土) 13:01:00ID:c1CTCPap >>399
XMLSchemaではQNameという型があります。>>397のnickのように使われます。
よく?使われる例は、
<hoge xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<value xsi:type="xsd:string">123456789</value>
</hoge>
だと、/hoge/value の値は、文字列”123456789”で、
<hoge xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<value xsi:type="xsd:int">123456789</value>
</hoge>
だと、/hoge/value の値は、32bit整数 123456789 で、
<hoge xmlns:tns="http://www.2ch.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<value xsi:type="tns:code">123456789</value>
</hoge>
だと、/hoge/value の値は、名前空間http://www.2ch.netで定義されたcode型の123456789、
なんて事になります。
でも、その直感はあながち間違いでもないように思えるのは、>>402に書いたとおりです。
XMLSchemaではQNameという型があります。>>397のnickのように使われます。
よく?使われる例は、
<hoge xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<value xsi:type="xsd:string">123456789</value>
</hoge>
だと、/hoge/value の値は、文字列”123456789”で、
<hoge xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<value xsi:type="xsd:int">123456789</value>
</hoge>
だと、/hoge/value の値は、32bit整数 123456789 で、
<hoge xmlns:tns="http://www.2ch.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<value xsi:type="tns:code">123456789</value>
</hoge>
だと、/hoge/value の値は、名前空間http://www.2ch.netで定義されたcode型の123456789、
なんて事になります。
でも、その直感はあながち間違いでもないように思えるのは、>>402に書いたとおりです。
404nobodyさん
2006/03/04(土) 19:16:02ID:??? 値がドキュメントの構成から離れて利用できないこと自体が逝かれてる。
よっぽどのアホがこんな仕様作ったんだろう。
よっぽどのアホがこんな仕様作ったんだろう。
405nobodyさん
2006/03/05(日) 07:39:58ID:??? >>403
なるほど、スキーマで使うのか
ボヘミアンな俺には縁が無さそうだが、
一つ勉強になった
でもよ、データ型が必要なら、それを前提としたもの、
例えば、XPath1.0より2.0を使った方がいいんじゃね?
貴族がボヘミアンを振る舞えったって、やっぱりぎこちないだろ
なるほど、スキーマで使うのか
ボヘミアンな俺には縁が無さそうだが、
一つ勉強になった
でもよ、データ型が必要なら、それを前提としたもの、
例えば、XPath1.0より2.0を使った方がいいんじゃね?
貴族がボヘミアンを振る舞えったって、やっぱりぎこちないだろ
406nobodyさん
2006/03/05(日) 14:59:23ID:noB5/pAr データ型というか、QNameだけ特におかしいんだよ。
QNameの例としてxsi:typeの例を挙げたのが誤解されたかもしれんが。
http://pc8.2ch.net/test/read.cgi/tech/1133280488/108
XPath2.0だと
http://pc8.2ch.net/test/read.cgi/tech/1133280488/105
みたいに簡潔に書けるの?
QNameの例としてxsi:typeの例を挙げたのが誤解されたかもしれんが。
http://pc8.2ch.net/test/read.cgi/tech/1133280488/108
XPath2.0だと
http://pc8.2ch.net/test/read.cgi/tech/1133280488/105
みたいに簡潔に書けるの?
407nobodyさん
2006/03/05(日) 20:28:28ID:??? XPath1.0だどQName型と言う概念が無いから、string型で辻褄を合わせなきゃならんけど
2.0は型情報を前提としている貴族主義だから、QName型ならQName型で処理できるんじゃないかな。
...と言いつつ、俺もよく分からん。
でも、XSLT・XPath1.0ってのは「シンプル・イズ・ベスト」を信仰するボヘミアン派だから、
如何せんXMLSchemaとは相性が良くないと思う。
2.0は型情報を前提としている貴族主義だから、QName型ならQName型で処理できるんじゃないかな。
...と言いつつ、俺もよく分からん。
でも、XSLT・XPath1.0ってのは「シンプル・イズ・ベスト」を信仰するボヘミアン派だから、
如何せんXMLSchemaとは相性が良くないと思う。
408nobodyさん
2006/03/07(火) 00:42:38ID:s8zBddvo 貴族と浮浪者、どちらになりたいか、って話?
409nobodyさん
2006/03/07(火) 06:40:25ID:??? 他人と話がしたいなら一般的でない形容はやめたらどうだ?
410nobodyさん
2006/03/07(火) 08:07:09ID:??? XMLユーザの貴族とボヘミアンって一般的でないのか?
411nobodyさん
2006/03/07(火) 08:36:15ID:??? 今すぐジャーゴンを使うのを止めろ
412nobodyさん
2006/03/07(火) 20:15:46ID:??? 皆中国語使用推奨
413nobodyさん
2006/03/09(木) 23:33:25ID:dDByu5bB XML 貴族 ボヘミアン の検索結果のうち 日本語のページ 約 510 件中 1 - 100 件目 (0.29 秒)
414nobodyさん
2006/03/10(金) 10:59:20ID:???415nobodyさん
2006/03/10(金) 11:15:50ID:??? 自分の発言に自信が持てないから逃げ道を作ってるんだよ察してやりなよ
そしてスルーしてやりなよ
そしてスルーしてやりなよ
416nobodyさん
2006/03/10(金) 11:27:58ID:??? みんなは貴族なの?
オイラはどうしても「型情報」って奴についてけねえだけどな。
DTD+DateTypeで十分だと思うがな...
オイラはどうしても「型情報」って奴についてけねえだけどな。
DTD+DateTypeで十分だと思うがな...
417nobodyさん
2006/03/10(金) 22:11:55ID:??? まぁついてこられない人が居るのは否定しないのが貴族
418nobodyさん
2006/03/18(土) 20:53:13ID:eqYBhKgI 今ASP.NETでRSSの読み込み・表示をしているのですが
RSS1.0はとりあえず表示できたのですが、RSS2.0が全然ダメです
XSLTファイルのRSS2.0を表示させるソースってどこか公開されていませんか?
RSS1.0はとりあえず表示できたのですが、RSS2.0が全然ダメです
XSLTファイルのRSS2.0を表示させるソースってどこか公開されていませんか?
419418
2006/03/18(土) 21:50:23ID:??? 事故解決しました
420nobodyさん
2006/03/26(日) 05:28:41ID:96nmrOTO XSLT の処理結果ってどうやって確認してる?
IE5.x の頃だったかは
http://www.microsoft.com/downloads/details.aspx?FamilyID=d23c1d2c-1571-4d61-bda8-adf9f6849df9&DisplayLang=en
入れればバリデーションと結果のソース表示も出来たんだが、IE6 になって
から出来なくなったのかな?
IE5.x の頃だったかは
http://www.microsoft.com/downloads/details.aspx?FamilyID=d23c1d2c-1571-4d61-bda8-adf9f6849df9&DisplayLang=en
入れればバリデーションと結果のソース表示も出来たんだが、IE6 になって
から出来なくなったのかな?
421nobodyさん
2006/03/29(水) 11:37:28ID:Bmnd//MP <foo count="10" />
とある場合、特定の処理を @count 回ループさせたいんですがどうすれば良いんでしょうか?
ループカウンタ付きのループ for(i=0; i<@count; i++) みたいな感じなんですけど、<xsl:for-each> じゃ
要素とかの集合しか指定できないですよね?
とある場合、特定の処理を @count 回ループさせたいんですがどうすれば良いんでしょうか?
ループカウンタ付きのループ for(i=0; i<@count; i++) みたいな感じなんですけど、<xsl:for-each> じゃ
要素とかの集合しか指定できないですよね?
423nobodyさん
2006/03/29(水) 19:18:29ID:Bmnd//MP すげぇ、ループを再起呼び出しでやるとは気づかなかったw
424nobodyさん
2006/03/29(水) 23:46:49ID:??? こいつは関数型言語みたいなもんだから
むしろ再帰の方が自然なんだな
むしろ再帰の方が自然なんだな
426nobodyさん
2006/03/32(土) 21:43:59ID:rvS9DXBc ファイルメーカーのアプローチってどう思う?
ウェブプログラミングにxsltって有効?
ウェブプログラミングにxsltって有効?
427nobodyさん
2006/04/02(日) 01:48:27ID:??? ファイルメーカーが何やってるか知らんが
静的な部分は XSL で、動的な部分は XML で作れるならデータ転送量を
最小限に押さえられるので有効だと思う。サーバの負荷分散にもなるし。
ただ未対応ブラウザに対応するなら逆に高くなるかもしれん。
静的な部分は XSL で、動的な部分は XML で作れるならデータ転送量を
最小限に押さえられるので有効だと思う。サーバの負荷分散にもなるし。
ただ未対応ブラウザに対応するなら逆に高くなるかもしれん。
428nobodyさん
2006/04/03(月) 20:37:14ID:??? 拡張関数(?)のexsltで本日の日付を取得したいのですが
クライアントサイドの一般的なパーサは対応しているのでしょうか?
処理としては要素の日付と本日の日付を比較して過去の情報は隠すという動きをさせたいです。
exsltが無理ならスクリプトでやってみます。
クライアントサイドの一般的なパーサは対応しているのでしょうか?
処理としては要素の日付と本日の日付を比較して過去の情報は隠すという動きをさせたいです。
exsltが無理ならスクリプトでやってみます。
429nobodyさん
2006/04/06(木) 09:20:31ID:???431nobodyさん
2006/04/06(木) 20:45:52ID:??? IE の XSL 対応って 5.0 からだっけ? Mozilla はどこから対応してんの?
432nobodyさん
2006/04/07(金) 20:37:45ID:??? XML → HTML で © や は XSL にどう記述したら良いの?
433nobodyさん
2006/04/07(金) 20:38:28ID:ds66Zruv ありゃ、© や は、です。
434nobodyさん
2006/04/08(土) 01:20:46ID:???435nobodyさん
2006/04/08(土) 01:25:53ID:??? 39
436nobodyさん
2006/04/09(日) 17:43:31ID:??? ?
レスを投稿する
ニュース
- 【自維】鮭おにぎり198円に絶望、コンビニすら遠い存在に…「生き延びられない」物価高で広がる生活苦★6 [ひぃぃ★]
- 【W杯】韓国が大窮地 悪夢のシナリオ止まらず 決勝T進出順位ボーダーの8位に転落 セネガル、イランに抜かれる ★5 [尺アジ★]
- イチロー氏、野球と比べてサッカーが「うらやましい」と語る 「チームのためにという感じが」「野球は個人で成績を出さないとボロカス」 [冬月記者★]
- 【サッカー】ブラジル戦、NHKは地上波なし 本田圭佑はBSで解説… 悲鳴続出「マジかよ」 地上波はフジテレビが生中継、解説は小野伸二 [冬月記者★]
- 【サッカー】日本代表、ブラジル戦でアウェーユニホーム着用へ… FIFAが公式発表 爆売れの白デザイン、W杯で初お披露目! [冬月記者★]
- 不快に感じる作業音3位は「パソコンのキーボード音」2位に「ボールペン等のノック音」…1位は?日本人は音に敏感すぎる? [muffin★]
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★219【メキシコ/カナダ/アメリカ】
- とらせん
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★218修正【メキシコ/カナダ/アメリカ】
- 〓たかせん〓
- 巨専】
- わしせん3
- おまんこの味
- 地震 [904880432]
- 日本人さん、震度5の地震にも動じず朝市を続ける [511393199]
- マイナカード補助金(税金)、業務委託・派遣会社の費用がマイナポイント配布時の最高額から一切減額していないことが判明😂 [422186189]
- 久しぶりにステーキ肉食ったら下痢になったんだが
- チューしたら怒る?