XSL/XSLT (558レス)
上下前次1-新
331: 05/01/08 17:10 ID:??? AAS
330ですが
解決しちゃいました どうもです
332(1): 05/01/10 19:16 ID:??? AAS
すみませんが誰かご教授下さい。 (マルチポストで申し訳ありません)
XMLのあるタグの属性が同じレベルのタグの属性とダブっっている時、
変換後にその属性のダブった部分を除きながら属性を並べたい場合は
どうすればよいでしょうか?
例えば
xml
<a>
<ele id="1"/>
<ele id="2"/>
<ele id="2"/>
<ele id="3"/>
<ele id="4"/>
<ele id="4"/>
<ele id="4"/>
<ele id="5"/>
</a>
を変換して
1 2 3 4 5
にするようなXSLを教えていただきたいのです。
よろしくお願いします。
333: 05/01/10 19:48 ID:??? AAS
アホか。マルチポストに返答するわけ無いだろ。
334(1): 05/01/22 19:16 ID:WsL3wQoU(1/2) AAS
<xsl:stylesheet xmlns:xsl="外部リンク:www.w3.org(ry xmlns:aws="外部リンク:abc.com"
exclude-result-prefixes="human">
<xsl:for-each select="people/person/age">
ここで別のXMLを取ってくる
<xsl:apply-templates select="human:hobbies/human:hoby" />
</xsl:for-each>
<xsl:template match="human:hobby">
335: 334 05/01/22 19:17 ID:WsL3wQoU(2/2) AAS
ああっ、途中で送ってしまった… orz
>>334のようにやると下のテンプレートの中身へ行かない?ようなのですが
どこに問題があるのでしょう?
336: 05/01/24 03:30 ID:??? AAS
>>332
もう解決してるのかもしれんが
//ele[not(@id=following-sibling::node()/@id)]/@id
とかでどうすか?
337: 05/01/30 14:52 ID:0RSaGusl(1/2) AAS
xmlをエクセルから作ってるんですが、日付が1900年形式でだされてしまいます。
それを表示する際に、dd-mmm-yyのフォーマットで表示したいんですが、どうすればよいでしょうか?
338: 05/01/30 20:37 ID:0RSaGusl(2/2) AAS
外部リンク:exslt.orgのテンプレート使ってやってみたんですが
すごい遅くなりました。前もってデータを変換してXMLをつくった
方が良さそうです...
339: 2005/04/09(土)23:05 ID:0FjmIeSR(1) AAS
ノード名じゃなくて値がQNameのときに、それが特定のNSに属してるかってどうやって判断できる?
<先祖のどこか xmlns:x="外部リンク:pc8.2ch.net">
...中略...<ここ この属性の値をチェックしたい="x:999654569"/>
node系関数のnamespace-uri()は値は見れないし、
string系の関数じゃ、xが本当に外部リンク:pc8.2ch.netなのかわからん。
ずうっと名前空間宣言を全部フォローして自分で覚えとくしかないのか?
340(2): 2005/04/21(木)17:08 ID:??? AAS
XMLもXSLもXSLTも何も知りません。
Aに1・2という情報?属性?を付けて
Bに2・3を付けて
Cに1を付けて
1が付いているのはA・C
2が付いているのはA・B
3が付いているのはB
というように表示するにはどうすればいいでしょう
341: 2005/04/21(木)18:15 ID:??? AAS
>>340
> XMLもXSLもXSLTも何も知りません。
勉強しろ。アフォか。
342: 2005/04/21(木)22:02 ID:??? AAS
System.out.println("1が付いているのはA・C");
System.out.println("2が付いているのはA・B");
System.out.println("3が付いているのはB");
343: 2005/04/21(木)23:30 ID:??? AAS
いや>>340的にはこっちのほうがわかりやすかろう。
MsgBox "1が付いているのはA・C", vbInformation
MsgBox "2が付いているのはA・B", vbInformation
MsgBox "3が付いているのはB", vbInformation
344(4): 2005/07/29(金)15:21 ID:??? AAS
デフォルトの名前空間が指定されている時、プレフィックスの無い Element は XPath でどう表現すればいいの?
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="design.xsl"?>
<hage:root xmlns="外部リンク:example.com" xmlns:hage="外部リンク:example.com">
<item1>あいうえお</item1>
<item2>かきくけこ</item2>
</hage:root>
こんな XML から "あいうえお"を取り出したいんだけど /hage:root/item1 じゃうまくいかないみたい。
345(2): [age] 2005/08/04(木)10:02 ID:??? AAS
スタイルシート側(desin.xslのことか?)の名前空間の設定はどうなってる?
携帯だからアドバイスしづらいな…。
まあ多分スタイルシートではxmlns="XHTMLのURI"とかやってると思う。
(これ自体は問題ないし下手にprefixつけるとUAが出力結果をXHTMLとして認識できない。)
でもこの場合あんたのスタイルシート内のXpath式内でitem1を指定しても
それはXHTMLでのitem1要素を指定していることになっている。
もちろんあんたはそんなもの扱った覚えは無いだろうしXHTMLにもそんな要素はない。
正しく処理させるには名前空間について勉強してくれ。
ソースXML文書のprefix無い方の名前空間のURIを$aとおくと、
スタイルシート側にxmlns:omanko="$a"を書き加えXPathではomanko:item1と
指定すればいい。xsl:の部分とかも不都合があればばんばん書き換えればいいから。
携帯からだから妙ちくりんな書き方になったが頑張ってくれ
んじゃ
346(1): 2005/08/14(日)13:37 ID:XDX8Ip5H(1) AAS
質問です。
UTF8で配信されるXMLをSHIFT_JISでHTML化したい
場合は
?JAVAのXMLパーサーとか使う
?perlとかphpでSOAP
なんていう方法しかありませんか?
現在はXSLTで簡単にスタイルシートあててやってますが
SHIFT_JISで出力するのは無理ぽ。。です。
どうにか方法はありますのでしょうか。。
携帯サイトを運営しているのですが
UTF8じゃ文字ばけするぞゴラァ!という
クレームが多くて困ってます。
347(1): 2005/08/14(日)15:10 ID:??? AAS
>>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="外部リンク:www.w3.org">
<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>
348(2): 2005/08/14(日)18:40 ID:??? AAS
>>347氏
ご丁寧に有難う御座います。
<xsl:output method="html" encoding="Shift_JIS" />
なんてタグがあるなんて知りませんでした。。orz
早速、その方法を試してみました。
結果報告
?PCブラウザで見る(IE)
ホワイトアウトしてしまいました。
右クリでエンコード指定でシフトジスにすると表示されました。
?元からUTF8対応携帯で見る
文字化けしてしまいました。
?シフトジスしか対応していない携帯で見る
うまく表示されるようになりました。
つまり 今まで見えてた??は見えなくなりましたが
?は見えるようになりました。
恐らくブラウザ側ではUTF8として認識しているためだと
思います。
素直にphpのxmlパーサーとかでやりつかね・・・
(php5入ってないので・・・SOAP無理ぽ)
349(1): 2005/08/14(日)18:50 ID:??? AAS
>>348
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
を挿入してみたらどうですかね。
350(1): 2005/08/14(日)19:36 ID:??? AAS
>>348
phpでサーバサイドでのXSLT変換か。取りあえず、UTF-8からShift_JISへの変換はできたみたいだね。
phpの話になってスマンが、もしかして、header('Content-Type: text/html; charset=UTF-8');とかなってる?
header('Content-Type: text/html; charset=Shift_JIS');にしてみたら、もしかしたら動くかもね。
351: 2005/08/14(日)22:31 ID:??? AAS
>>349
>>350
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
もやってみましたが、同様の結果でした。
どうもXSLTだけでの解決は難しそうなので
PHPでやってみます。
変更できたらまたご報告します。
(ちょちょっとPHPのXMLパーサ関数でやってみましたが、できそうです。)
352(1): 344 2005/08/17(水)20:33 ID:??? AAS
>345
わざわざ携帯から長いレスをサンクス
俺のレスの前が3ヶ月前だったので回答は期待できないと思ってスレみてなかったよorz
結局質問してから別の場所で答えを見つけたんだけど、
XSL で XPATH 書いても XSL で定義した既定のネームスペースは XPath には適用されないってことなんだよな。
なんでそんな変な仕様なのか理解に苦しむけど。
てことで、 XML の既定のネームスペースを XSL 側では Prefix 付きで定義することで解決しました。
353: [age] 2005/08/18(木)19:39 ID:??? AAS
ちょっとYOUはまだ勘違いしてるかも…。そこらへんはXSLTはまともな仕様でつよ。
もっと名前空間のよさを感じてちょうだい!!!!
そして私は
354: 344 2005/08/18(木)22:02 ID:??? AAS
外部リンク[html]:www2.xml.gr.jp
あたりを見て >352 のような結論に至ったわけだが、なんか勘違いがある?と思って
改めてリンク先のスレッドを読んでると
外部リンク[html]:www2.xml.gr.jp
に
> さらに、XPath式中のQNameを展開するときには、以下のルールが成り立ちます。
> 2. プリフィックスがついていない場合、ネームスペースURIはnullになる。
とあるな。確かに勘違いしてたかも。
> そして私は
続きが気になるよ(´・ω・`)
355: 初心者 2005/09/04(日)03:53 ID:??? AAS
どうか教えてください。
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="画像リンク[jpg]:images.amazon.com" width="xxx" height="xxx" alt="xxx">になってしまい、閉じタグをいれることができません。
xsltでどう指定すると閉じタグをいれることができるのでしょうか?
356(1): 2005/09/04(日)10:59 ID:??? AAS
<xsl:output method="xml"/>
をxsl:stylesheetの直下に入れる、かな。
XHTMLでないHTMLとして出力されていると思われ。
357: 初心者 2005/09/05(月)02:29 ID:??? AAS
>>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 みたいな形で出力した方が適当でしょうか?
358: 初心者 2005/09/05(月)02:47 ID:??? AAS
ゴメンナサイ。
ググったら見つけました。
<xsl:output method="xml" omit-xml-declaration="yes" /> とすると、XML 宣言をしないようにできるようですが
実際には出力されてしまいます。
なにかおかしいですかね?
359: 2005/09/10(土)01:33 ID:??? AAS
どっちでもいいけど
alt="{$変数名}"
とは書かないの?
call-templateする予定があるとか??
あと最初以外にXML宣言入るのは文法の問題あるよ。
ただUAが無視してくれているだけだけど。
360: [age] 2005/09/29(木)03:07 ID:??? AAS
age
どなたかXSLT2.0の話でも…
361: 2005/09/29(木)11:45 ID:??? AAS
XSLTとDSSSLのいいとこどりみたいなXSieve
外部リンク:xsieve.sourceforge.net
362: 2005/10/01(土)21:07 ID:??? AAS
今アマゾンウェブサービスでXSLファイルを書いてるのですが
何故かVersion=2005-09-15だと、StyleにXSLファイル指定してもうまくいきません。
AWSでXSLやるときの条件みたいなものって何かありますか?
363: 2005/10/04(火)17:41 ID:otfuFaaW(1/2) AAS
XSLTを書いていると、かなり長くなってしまったんですが、XSLTファイルをモジュールや関数みたいに分割することはできますか。
仕様書をみたけど、それらしい機能が見つかりませんでした。
364(1): 2005/10/04(火)21:01 ID:??? AAS
xsl:include, xsl:import
365: 2005/10/04(火)21:53 ID:otfuFaaW(2/2) AAS
>>364
ありがとう。スタイルシートの取り込みってあったから、てっきりCSSのことだと思ってた。
XSLTファイルじたいがスタイルシートなのね。べんきょうになりますた。
366: 2005/10/15(土)16:29 ID:dOz9BDB0(1) AAS
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の名前で参照するにはどうやればよいのでしょうか。
367: サッカー少年大好き 2005/10/15(土)17:00 ID:??? AAS
/child::A/child::*[attribute::key='str']/attribute::value
でいけると思われ。
(child::は省略可、attribute::は@に置換可)
結論を言うと、XPathの勉強をおすすめする。
368: 訂正 2005/10/15(土)17:04 ID:??? AAS
child::*はchild::Bにした方がいいかもしんね。
strにはkeyの値を入れるんだよ。
369: 2005/10/15(土)21:29 ID:??? AAS
出来ましたありがとうございます。
本来なら勉強しなきゃいけないんですが、助かりました。
370(2): 2005/10/17(月)19:35 ID:SiiJse0Y(1) AAS
ソースは
外部リンク[xml]:www.wakkaya.comと
外部リンク[xsl]:www.wakkaya.comです。
まず、
<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と表示されますか?
どなたかご教授下さい。何卒宜しくお願い致します。
371(1): 2005/10/17(月)20:58 ID:??? AAS
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>
372: 370 2005/10/17(月)23:18 ID:??? AAS
>>371
うまくいきました!
本当に助かりました。有り難う御座います。
373(1): 370 2005/10/18(火)08:05 ID:??? AAS
連続質問ですみません。ソースは引き続き
外部リンク[xml]:www.wakkaya.comと
外部リンク[xsl]:www.wakkaya.comです。
今度は、<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から始まります。
対処法をお教え頂けませんでしょうか?本当に度々ですみません。
374(1): 2005/10/18(火)12:21 ID:??? AAS
>連続質問ですみません。ソースは引き続き
とか書くと相手にされない件
375(1): 2005/10/18(火)16:18 ID:EpeUQJeg(1) AAS
XSLTで変数使えるのは分かったんだけど、
「x=x+1」のような
インクリメントってできないの?
376(1): 2005/10/18(火)16:58 ID:??? AAS
>>373
371と同じ。
377: 2005/10/18(火)23:23 ID:??? AAS
>>375
マルチポストですね?
378: 2005/10/19(水)15:52 ID:HblKNOzD(1) AAS
>>374
すみません。気を付けます。
>>376
アドバイスあるが等御座います。
もすこしfor-each やifやwhen勉強して出直してきます・・・
379(1): 2005/10/19(水)16:32 ID:??? AAS
そっちよりもXPathを覚えるほうがいいかと。
380(2): 2005/10/20(木)13:50 ID:??? AAS
>>379
仰せの通りXPathについていろいろ調べたことろ、
<xsl:for-each select="data[contains(name, '3') and uriage > 0 ]">
とするだけでNaNをはじくことが出来ました。
なんか凄い初歩的で恥ずかしい質問であるにもかかわらずお答え下さった皆様方、
この度は誠に有り難う御座います。
これを機会にXPathを精進・・
381: 2005/10/22(土)08:44 ID:??? AAS
>>380
ていうかお前にはxmlはおろかwebそのもののセンスも無いからやめとけ
382: 2005/10/22(土)20:01 ID:??? AAS
遅すぎるお前のレスもセンスがねーよw 2chやめろな。
383: 2005/10/23(日)01:17 ID:??? AAS
ん?逆切れかマケウチ君
384: 2005/10/23(日)20:44 ID:??? AAS
>>380
低脳が。センスのないHPもさっさとたたみな
キモイんだよ、デザインが
385(1): 2005/10/24(月)09:48 ID:3//Wc9qN(1) AAS
HPって「たたむ」って表現するんだ・・・初めてしったよ
386(1): 2005/11/11(金)13:59 ID:nEB8ZVf7(1) AAS
xreaでサーバーサイド変換て出来るんですか?
外部リンク[html]:www.atmarkit.co.jp
を試してみようと思いましたが
外部リンク[php]:sb.xrea.com
どう見ても無理です。
本当にありがとうございました
387: 385 2005/11/11(金)14:02 ID:??? AAS
>>386
と思ったらもうインストローリングされてました。
私の記述ミスです。
本年もよろしくご指導のほどお願いいたします
388: 2005/11/11(金)14:10 ID:??? AAS
インストローリング の検索結果のうち 日本語のページ 約 286 件
389: 2005/11/11(金)20:58 ID:??? AAS
ローリングストーンズのヴォーカル無い曲。
390(1): 2005/11/17(木)02:28 ID:??? AAS
バージョン2が勧告候補になりますた。
早めに勉強しましょう。
391: 2005/11/17(木)08:43 ID:??? AAS
>>390
新機能とか変更点を簡潔に説明したサイト教えてけれ。
392: 2005/11/18(金)17:50 ID:??? AAS
外部リンク[html]:pcweb.mycom.co.jp
393(2): 2005/12/13(火)01:57 ID:??? AAS
>>344
数ヶ月ぶりに自己レス
/[local-name()="root" and namespace-uri()="外部リンク:example.com"]/item1
でどうだろう?
394: 2005/12/14(水)09:14 ID:??? AAS
>>393
いや、だから>>345がスタイルシートの中でURIが一緒な
任意のプリフィクスを付けろとアドバイスしてるだろう。
なんでそんな面倒なことするの。しかも間違ってるし。
395: 2005/12/14(水)11:59 ID:??? AAS
>>393
まず名前空間から勉強し直せ、ゴラァァ!!
396: [age] 2005/12/15(木)20:20 ID:??? AAS
>>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で使用されるお。
・シーケンスっつーのはアイテムたちの順序ある並びだお
・アイテムというのはノードと、リテラルチックな”値”のことだお
もっとセンセーショナルな事実が解ったらまたカキコするお。
でも駄目人間の俺より仕様書を信用するべきだお。
またもや携帯からの書き込みだから妙なことになってるかもしらん。
バイバイ
397(3): 2006/03/04(土)02:07 ID:c1CTCPap(1/2) AAS
某所より誘導されました。
XSLT(XPath)で、Textや属性のQNameってどうやって調べれば良いんでしょうか?
例えば、
<ns0:boards xmlns:ns0="外部リンク:2ch.net">
<board nick="ns0:webprog"/>
<board nick="ns0:tech"/>
<board nick="ns0:unix"/>
</ns0:boards>
で、
「値が、名前空間が"外部リンク:2ch.net"でローカル名が"webprog"の値を持つboard要素」って、
どうやって調べればよいのか…。
全然知らないんですがXPath1.0じゃだめでXPath2.0の●●じゃないと無理とかあるんでしょうか。
398: 2006/03/04(土)02:08 ID:??? AAS
訂正
×「値が、…
○「属性値が、…
399(2): 2006/03/04(土)08:57 ID:??? AAS
>>397
何故、属性値の内容が展開されるんだ?
基本的にはstringだろ?
400: 2006/03/04(土)09:38 ID:??? AAS
>>397
詞ね
<xsl:template match="/boards/board[@nick=concat(name(namespace::*[.='外部リンク:2ch.net']),':webprog')]">
<xsl:value-of select="@nick"/>
</xsl:template>
401: 2006/03/04(土)09:45 ID:??? AAS
/boards/ns0:boards/;
402(1): 2006/03/04(土)12:59 ID:??? AAS
うひ(^_^;)
ありがとうございます。
頂いた答えをヒントにして、苦節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?の仕様の方が逝かれてるのではないか、という気がしてきます…。
403(1): 2006/03/04(土)13:01 ID:c1CTCPap(2/2) AAS
>>399
XMLSchemaではQNameという型があります。>>397のnickのように使われます。
よく?使われる例は、
<hoge xmlns:xsd="外部リンク:www.w3.org" xmlns:xsi="外部リンク:www.w3.org">
<value xsi:type="xsd:string">123456789</value>
</hoge>
だと、/hoge/value の値は、文字列”123456789”で、
<hoge xmlns:xsd="外部リンク:www.w3.org" xmlns:xsi="外部リンク:www.w3.org">
<value xsi:type="xsd:int">123456789</value>
</hoge>
だと、/hoge/value の値は、32bit整数 123456789 で、
<hoge xmlns:tns="外部リンク:www.2ch.net" xmlns:xsi="外部リンク:www.w3.org">
<value xsi:type="tns:code">123456789</value>
</hoge>
だと、/hoge/value の値は、名前空間外部リンク:www.2ch.netで定義されたcode型の123456789、
なんて事になります。
でも、その直感はあながち間違いでもないように思えるのは、>>402に書いたとおりです。
404: 2006/03/04(土)19:16 ID:??? AAS
値がドキュメントの構成から離れて利用できないこと自体が逝かれてる。
よっぽどのアホがこんな仕様作ったんだろう。
405: 2006/03/05(日)07:39 ID:??? AAS
>>403
なるほど、スキーマで使うのか
ボヘミアンな俺には縁が無さそうだが、
一つ勉強になった
でもよ、データ型が必要なら、それを前提としたもの、
例えば、XPath1.0より2.0を使った方がいいんじゃね?
貴族がボヘミアンを振る舞えったって、やっぱりぎこちないだろ
406: 2006/03/05(日)14:59 ID:noB5/pAr(1) AAS
データ型というか、QNameだけ特におかしいんだよ。
QNameの例としてxsi:typeの例を挙げたのが誤解されたかもしれんが。
2chスレ:tech
XPath2.0だと
2chスレ:tech
みたいに簡潔に書けるの?
407: 2006/03/05(日)20:28 ID:??? AAS
XPath1.0だどQName型と言う概念が無いから、string型で辻褄を合わせなきゃならんけど
2.0は型情報を前提としている貴族主義だから、QName型ならQName型で処理できるんじゃないかな。
...と言いつつ、俺もよく分からん。
でも、XSLT・XPath1.0ってのは「シンプル・イズ・ベスト」を信仰するボヘミアン派だから、
如何せんXMLSchemaとは相性が良くないと思う。
408: 2006/03/07(火)00:42 ID:s8zBddvo(1) AAS
貴族と浮浪者、どちらになりたいか、って話?
409: 2006/03/07(火)06:40 ID:??? AAS
他人と話がしたいなら一般的でない形容はやめたらどうだ?
410: 2006/03/07(火)08:07 ID:??? AAS
XMLユーザの貴族とボヘミアンって一般的でないのか?
411: 2006/03/07(火)08:36 ID:??? AAS
今すぐジャーゴンを使うのを止めろ
412: 2006/03/07(火)20:15 ID:??? AAS
皆中国語使用推奨
413(1): 2006/03/09(木)23:33 ID:dDByu5bB(1) AAS
XML 貴族 ボヘミアン の検索結果のうち 日本語のページ 約 510 件中 1 - 100 件目 (0.29 秒)
414: 2006/03/10(金)10:59 ID:??? AAS
>>413
510件という数字は多いのか?少ないのか?
Googleまで持ち出して何が言いたいんだ?
……という風に突っ込まれたくなければ意図不明瞭な一行レスをやめろ。
415: 2006/03/10(金)11:15 ID:??? AAS
自分の発言に自信が持てないから逃げ道を作ってるんだよ察してやりなよ
そしてスルーしてやりなよ
416: 2006/03/10(金)11:27 ID:??? AAS
みんなは貴族なの?
オイラはどうしても「型情報」って奴についてけねえだけどな。
DTD+DateTypeで十分だと思うがな...
417: [sage] 2006/03/10(金)22:11 ID:??? AAS
まぁついてこられない人が居るのは否定しないのが貴族
418(1): 2006/03/18(土)20:53 ID:eqYBhKgI(1) AAS
今ASP.NETでRSSの読み込み・表示をしているのですが
RSS1.0はとりあえず表示できたのですが、RSS2.0が全然ダメです
XSLTファイルのRSS2.0を表示させるソースってどこか公開されていませんか?
419: 418 2006/03/18(土)21:50 ID:??? AAS
事故解決しました
420: 2006/03/26(日)05:28 ID:96nmrOTO(1) AAS
XSLT の処理結果ってどうやって確認してる?
IE5.x の頃だったかは
外部リンク[aspx]:www.microsoft.com
入れればバリデーションと結果のソース表示も出来たんだが、IE6 になって
から出来なくなったのかな?
421(1): 2006/03/29(水)11:37 ID:Bmnd//MP(1/2) AAS
<foo count="10" />
とある場合、特定の処理を @count 回ループさせたいんですがどうすれば良いんでしょうか?
ループカウンタ付きのループ for(i=0; i<@count; i++) みたいな感じなんですけど、<xsl:for-each> じゃ
要素とかの集合しか指定できないですよね?
422: 2006/03/29(水)18:54 ID:??? AAS
>>421
「XSLT 再帰処理」でGoogle検索してみれ
423(1): 2006/03/29(水)19:18 ID:Bmnd//MP(2/2) AAS
すげぇ、ループを再起呼び出しでやるとは気づかなかったw
424: 2006/03/29(水)23:46 ID:??? AAS
こいつは関数型言語みたいなもんだから
むしろ再帰の方が自然なんだな
425: 2006/03/30(木)08:26 ID:??? AAS
>>423
他の方法で、できんことも無いけど、再帰が真っ当。
これを制せば、XSLTをほぼ手中に入れられる。
426: 2006/03/32(土)21:43 ID:rvS9DXBc(1) AAS
ファイルメーカーのアプローチってどう思う?
ウェブプログラミングにxsltって有効?
427: 2006/04/02(日)01:48 ID:??? AAS
ファイルメーカーが何やってるか知らんが
静的な部分は XSL で、動的な部分は XML で作れるならデータ転送量を
最小限に押さえられるので有効だと思う。サーバの負荷分散にもなるし。
ただ未対応ブラウザに対応するなら逆に高くなるかもしれん。
428(1): 2006/04/03(月)20:37 ID:??? AAS
拡張関数(?)のexsltで本日の日付を取得したいのですが
クライアントサイドの一般的なパーサは対応しているのでしょうか?
処理としては要素の日付と本日の日付を比較して過去の情報は隠すという動きをさせたいです。
exsltが無理ならスクリプトでやってみます。
429(1): 2006/04/06(木)09:20 ID:??? AAS
>>428
クライアントサイドの一般的なパーサって、どんなん?
IEやMozillaに付いてくような奴だったら駄目じゃね?
430: 2006/04/06(木)20:40 ID:??? AAS
>>429
それです。
431: 2006/04/06(木)20:45 ID:??? AAS
IE の XSL 対応って 5.0 からだっけ? Mozilla はどこから対応してんの?
432: 2006/04/07(金)20:37 ID:??? AAS
XML → HTML で © や は XSL にどう記述したら良いの?
433: 2006/04/07(金)20:38 ID:ds66Zruv(1) AAS
ありゃ、© や は、です。
434: 2006/04/08(土)01:20 ID:??? AAS
外部リンク[html]:www.w3.org
ここを見て、copyなら©, nbspなら と書くのが単純。
435: 2006/04/08(土)01:25 ID:??? AAS
39
436: [sage] 2006/04/09(日)17:43 ID:??? AAS
?
437: 2006/04/11(火)14:38 ID:??? AAS
XML + XSL で XSL って作れる?
一般ユーザ用と管理者用で XSL を分けてたんだが、2〜3 のパラメータと条件分岐だけで
統合できそうなのが分かってきた。ただ一般ユーザには管理者用の XSL を見せたくないし。
438: 2006/04/11(火)20:50 ID:??? AAS
XSLからXSLを出力するならxsl:namespace-aliasとかでぐぐると良いよ。
439: 2006/04/19(水)04:15 ID:??? AAS
ブラウザごとの XSL 対応状況の一覧とか載ってるサイトご存知でしたら教えてたも m(_ _)m
440: 2006/04/19(水)19:35 ID:??? AAS
一生懸命変換PGを作っていたのにWord2003で出来ちゃうのね。。。
441: 2006/04/19(水)20:30 ID:??? AAS
``PG''……
442: 2006/04/21(金)07:18 ID:??? AAS
Firefox 1.0.7 (Linux) で <xsl:value-of> の disable-output-escaping="no" が
利かないみたいなんですけど何か振替策ないでしょうか?
443: 2006/04/21(金)07:52 ID:??? AAS
すみません、no じゃなくて yes です。ちょっとネットで漁ってみましたが
Mozilla 開発者連中は W3C の解釈だとか何とか言い訳付けて修正しないそうです (なんだそりゃ)。
結局の所、中で 2 回パースしてる部分が遅くなるだとか、XML+XSLで生成した HTML が Valid で
あるという前提で設計しちゃったので手を入れたくないとかってのが本音っぽい。
ふと思いついて JavaScript で innerHTML に設定してみたらとりあえず回避できたっぽいのでご報告まで。
<xsl:value-of select="foo" disable-output-escaping="yes" />
↓
<input type="hidden" name="" id="foo" value="{foo}" />
<span id="bar"></span>
<script language="javascript">
document.getElementById("bar").innerHTML = document.getElementById("foo").value;
</script>
444: 2006/06/02(金)14:43 ID:H6C73k2s(1/2) AAS
御教授願います。
ループを回し表を作成したときに、1行毎に指定された内容をセットしてmailを送りたいのですが上手くいきません。
以下はループの内部処理です。
・$q_indexには表の登録番号(行番号)がセットされています。
・メールのテンプレートをjavaScriptで作成しています。
<xsl:variable name="url_id">url_<xsl:value-of select="$q_index"/></xsl:variable>
<A target="_blank" href="" id="$url_id" charset="">メール送信</A>
<script lang="javaScript">
$url_id.href='mailto:xxxx@xxx.co.jp?subject=' + [行毎に定義されたmailテンプレ];
</script>
最初は上記のように書いていました。
これで表を作ると、1件目はメールを送れたのですが、2件目以降メーラーが開かないというバグが発生してしまいました。
理由は<A>タグで定義してるIDパラメータが"$url_id"という文字列で固定されていた為です。
2件目以降も同じ名前が定義されている為エラーになっているようでした。
そこで下のように改造を試みたのですが、ここで問題が発生しました。
<xsl:variable name="url_id">url_<xsl:value-of select="$q_index"/></xsl:variable>
<A target="_blank" href="" id="<xsl:value-of select="$url_id"/>" charset="">メール送信</A>
<script lang="javaScript">
<xsl:value-of select="$url_id"/>.href='mailto:xxxx@xxx.co.jp?subject=' + [行毎に定義されたメールテンプレ];
</script>
この様にした場合、<A>タグのIDパラメータが不正となってしまいます。
お聞きしたいのは、<A>タグのIDパラメータに変数$url_idを定義したいのです。
どなたか上手い方法をご存知無いでしょうか?
445: 2006/06/02(金)15:00 ID:H6C73k2s(2/2) AAS
自己解決したので書いておきます。
直接変数内のデータを参照したい場合、{}で括ればいいらしいようです。
<xsl:variable name="url_id">url_<xsl:value-of select="$q_index"/></xsl:variable>
<A target="_blank" href="" id="{$url_id}" charset="">メール送信</A>
<script lang="javaScript">
<xsl:value-of select="$url_id"/>.href='mailto:xxxx@xxx.co.jp?subject=' + [行毎に定義されたメールテンプレ];
</script>
446: 2006/06/06(火)05:01 ID:??? AAS
$を文字列として使いたいんだけど、
どうすればいいの?
447(1): 2006/06/06(火)19:27 ID:??? AAS
<xsl:text>$</xsl:text>
<![CDATA$]]>
448: 2006/06/06(火)19:27 ID:??? AAS
間違ったーーー!!!
449: 2006/06/06(火)20:29 ID:??? AAS
>>447
これでうまくいきました。本当にありがとうございます。
450: 2006/06/06(火)20:47 ID:??? AAS
awsのxslの一部です。
- <Arguments>
<Argument Name="AssociateTag" Value="sfeesv-22" />
<Argument Name="ItemPage" Value="1" />
<Argument Name="SubscriptionId" Value="0QRaadwa2" />
<Argument Name="Keywords" Value="ハリーポッター" />
<Argument Name="ResponseGroup" Value="Request,ItemIds,OfferFull,VariationSummary,ItemAttributes,EditorialReview,Images,Reviews" />
<Argument Name="Operation" Value="ItemSearch" />
<Argument Name="Service" Value="AWSECommerceService" />
<Argument Name="SearchIndex" Value="Electronics" />
<Argument Name="Sort" Value="salesrank" />
</Arguments>
コレをxsltのfor-each分で値を返します。Argumentだけを抜き出します。
-----
<xsl:for-each select="aws:Argument">
<xsl:value-of select="@Name"/>
<xsl:value-of select="@Value"/>
</xsl:for-each>
-----
値がずらずらっと返ってきました。ここで<Argument Name="ItemPage" Value="1" />の部分だけ値を返したくないのですが、xsltにどのように書き加えればいいのでしょうか?
451(1): 2006/06/06(火)21:24 ID:??? AAS
<xsl:for-each select="aws:Argument[@Name != 'ItemPage']">
452: 2006/06/06(火)21:25 ID:??? AAS
自信ないから上手くいってもいかなくても教えてね
453: 2006/06/07(水)00:01 ID:??? AAS
>>451
ありがとうございます。
試してみた結果、ばっちり成功でした
454: 2006/06/15(木)17:44 ID:bh/U7SOR(1) AAS
XMLからXMLに変換したいんですけど、
XSLTに<xsl:output method='xml' encoding='SHIFT_JIS'/>
みたいな感じで書いているのに
出力されるXML宣言が<?xml version="1.0" encoding="UTF-16"?>
と出力されるのは何ででしょうか?
ちなみにXMLファイルの変換には
VS2005VC++でIXMLDOMDocumentPtrのtransformNode()を使用しています。
455(1): 2006/07/10(月)11:50 ID:AyMgINi+(1) AAS
えっと、XML 文書を XSL で HTML に変換し、
それに CSS を適用して見せるページを作っています。
意図するように見えているのですが、
Firefox がどのような HTML に変換しているのかを
確認したいと思っています。
Firefox で XSL による変換結果をファイルに
保存することってできますか?
つまり XSL 適用後の文書を保存したい、
Firefox を単に XSL プロセッサとして使いたいのです。
456: 2006/07/11(火)17:58 ID:Wcdm37qK(1/4) AAS
XML ファイルの先頭で XML プロセッサに対して XSL ファイルを指示しますよね?
<?xml-stylesheet title="XSL_formatting" type="text/xsl"
href="外部リンク:resource.example.com ?>
XML プロセッサとして Firefox を利用すると、
XML ファイルをおいてある場所以外の XSL ファイルを
指定した場合に「Security Error」になります。
これはいかんともしがたいのでしょうか?
457: 2006/07/11(火)18:20 ID:??? AAS
Security Errorのあとにコロンがついてエラーの内容が書いてない?
セキュリティ上、別ドメインからのスクリプトの呼び出しはダメとかじゃなくて?
上下前次1-新書関写板覧索設栞歴
あと 101 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.733s*