XSL/XSLT (558レス)
上下前次1-新
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のあとにコロンがついてエラーの内容が書いてない?
セキュリティ上、別ドメインからのスクリプトの呼び出しはダメとかじゃなくて?
458: 2006/07/11(火)18:24 ID:Wcdm37qK(2/4) AAS
Security Error: Content at 外部リンク[xml]:example.com
may not load data from 外部リンク[xsl]:orz.2ch.net
表示内容は上記の通りです。スクリプトと同じで他のドメイン
からの XSL ファイルは信用しないよってことですか。
全部ローカルにおいてたら Gecko でも IE でも処理
できるファイル群なので、ファイルの内容自体に誤りはないと思います。
459: 2006/07/11(火)18:38 ID:??? AAS
CheckSameOriginError, Security Error: Content at %S may not load data from %S. セキュリティエラー: %S のコンテンツが %S からデータを読み取ることは禁止されて います。
460: 456=458 2006/07/11(火)18:38 ID:Wcdm37qK(3/4) AAS
IE だと 外部リンク:example.com を信頼済みサイトに
登録することで、他のサイトの XSL ファイルも
ダウンロードして処理してくれるようになりました。
Firefox ではそれに対応する設定を見つけられませんでした。
身内で共通の CSS とか XSL 使おうと思ってて
どうせ内容いじれるのが自分だけなんで一カ所に
集めちゃおうと思ったんですが、セキュリティの
こと考えたらなんか根本的に間違ってた気がするので
あきらめます。
461: 2006/07/11(火)20:19 ID:Wcdm37qK(4/4) AAS
ところで、 XPath による要素・属性の指定において、
「ルート直下の a または b という要素の下にある c という要素」
に関するテンプレートを書きたい時って、
/a/c に対するものと /b/c に対するものを別に
書く必要がありますか?まとめて /{a|b}/c のように記述
する方法はありませんでしょうか?
462: 2006/07/11(火)20:46 ID:??? AAS
a and b
463: 2006/07/12(水)09:47 ID:CjrVtdTv(1) AAS
<Arguments>
<Argument Name="Service" Value="" />
<Argument Name="AssociateTag" Value="test" />
<Argument Name="ItemPage" Value="1" />
</Arguments>
xsl:value-of selectを使って、testの値だけ抜き出したいのですが、
どのように書けばいいんでしょうか?
464(1): 2006/07/12(水)11:36 ID:??? AAS
たまたま弄ってた所だから特別に教えてやる
Arguments/Argument[@Name='AssociateTag']/@Value
入門書くらい買え
ちがってたらゴメンネ
465: 2006/07/13(木)16:00 ID:Lxav0c83(1/2) AAS
>>464
どうもありがとうございます。
うまくいきました!
466: 2006/07/13(木)17:27 ID:Lxav0c83(2/2) AAS
document関数は外部のサイトも取得できるんでしょうか?
467: 2006/07/13(木)18:25 ID:??? AAS
やってみよう!
わからなかったら聞いてみよう!
わかったことはみんなに知らせよう!
いけ!
468: 2006/07/14(金)20:02 ID:BpYZj7V/(1/2) AAS
がんばって見た結果、たぶんできるっぽいです。
ところで
<xsl:for-each select="document('外部リンク:test.xml')
見たいにurlを入力したとき、urlに=だとか&だとかが入っているとエラーが出てしまいます。
どうやって書けばいいんでしょうか?
469: 2006/07/14(金)21:29 ID:MY15XHq0(1) AAS
&は&だったかな。?だったかもしれない。
=はそのままでよかった気がする。
外部リンク:www.ne.jp
470(1): 2006/07/14(金)21:30 ID:??? AAS
すまん、参照がともに変換されてしまったorz
示したURLのページをもとにがんばってくれ。
471: 2006/07/14(金)23:47 ID:BpYZj7V/(2/2) AAS
>>470
ありがとうございます
472(2): [age] 2006/07/22(土)10:37 ID:??? AAS
xml文章の中から、ユーザー側から入力した条件を元に、
検索して結果を表示するようなことは、xslのみで実現するのは可能でしょうか?
postができなそうなのでやっぱり不可能でしょうか?
473(1): 2006/07/23(日)00:28 ID:??? AAS
xslのみ の意味がわからない
474(1): 2006/07/23(日)00:29 ID:??? AAS
>>472
CGIでやるなら、いまのところCGIからXSLTプロセッサを呼び出すしかない。
475: 472 2006/07/23(日)09:47 ID:??? AAS
>>474
やっぱそうなりますよね。
xml文章中の特定の語句を検索して表示するような、
スクリプトが紹介されていたので、
postができれば検索システムも作れるそうだなと思った次第です。
>>473
xslって簡易プログラミング言語みたいなものだと思っていたので、
変な言い方だったらすみません。
476: 2006/07/24(月)14:48 ID:uSZzoH8+(1) AAS
文字列をエンコードする関数って
どんなのがありますか?
477: 2006/07/25(火)01:05 ID:??? AAS
postされたデータを使ってXSLTを作り変換すれば?
xsl:if の test 部分をpostされたデータにすれば出来そうな気がする
478(1): 2006/08/02(水)19:55 ID:qF5sPr3L(1/2) AAS
document関数でurlを指定するとき、xsl:variable nameはつかえないんでしょうか?
<xsl:variable name="●●">○○.xml</xsl:variable>
<xsl:for-each select="document($●●)/▲▲/■■">
</xsl:for-each>
こんな感じで入力すると、$●●に○○.xmlが入らずに
$●●のままなんですが・・・
479(1): 2006/08/02(水)20:13 ID:qF5sPr3L(2/2) AAS
>>478
すいません自己解決しました。
480: 2006/08/06(日)02:13 ID:??? AAS
>>479
自己解決したら、解決法かけや
481: 2006/08/17(木)06:59 ID:??? AAS
AA省
482(1): 2006/08/17(木)15:51 ID:??? AAS
<xsl:template match="password">
<password>****</password>
</xsl:template>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
ただし、password要素が空でないネームスペースに属しているならば、予めxmlns:foo="外部リンク:..."としておいて、match="foo:password"としなければならない。
xmlns="外部リンク:..."としておいてmatch="password"としてもだめ。
483: 2006/08/18(金)18:36 ID:??? AAS
>>482
お、出来た! W3C の <xsl:copy> のところに書いてありますね。意味が分からんかったのでスルーしてましたが。
484(1): 2006/08/26(土)03:28 ID:??? AAS
すみません、文字列の一括置換は XSL でどうやったら良いんでしょうか。
XML から JavaScript の文字列リテラルに変換するときにエスケープする必要があるのですが。
<foo>say "good morning"</foo>
↓
var msg = "say \"good morning\"";
485(1): 2006/09/27(水)01:19 ID:??? AAS
XSLT内で外部のJavaScriptファイルを読む宣言をするとIEでホワイトアウトするのですが。
諸事情により内部に直接JavaScriptを書きたくなくて。。
どうしたらよいのでしょうか?
486: 2006/09/27(水)02:25 ID:??? AAS
document関数はXMLしか読み込めないよ。Javascirptを読もうとするとエラーになるので多分それでホワイトアウトしてる。
<script src="(スクリプトのURL)"/>
みたいな要素を出力した方がよいかと。
#エスパーレベル低いので外してるかな?
487(2): 485 2006/09/27(水)09:27 ID:??? AAS
分かりにくい書き方してすんません。
で、ご指摘の方法でやっていたんですがうまくいきません。
むしろJavaScriptソースを直接書けば動きます。
Firefoxならどっちでもちゃんと動くんですけど。。
もう少し詳しく状況を説明しておくと
・JavaでXSL変換を行っている
・変換後データはStringとして吐き出される
・それをそのままサーブレットのPrintWriterを使って表示
してます。
488: 2006/09/29(金)01:06 ID:??? AAS
>487
<script src="(スクリプトのURL)"/> でリンクしたJSファイルと
PrintWriterが吐くページのエンコーディングが合ってないとかか?
489: 2006/10/03(火)16:26 ID:??? AAS
>487
文字コードはすべてUTF-8で統一してあります。
さらに、response.setChar〜でUTF-8を設定してあるので完璧。。だと思います。
javascriptのソース次第でなんとなりそうな気もしてきたのでとりあえずそっちで試行錯誤してみます。
490: 2006/10/26(木)13:25 ID:5D6Zlz9T(1/2) AAS
変鉄もないxmlファイルのルート以下のタグ名をmethodはhtmlで表示させるだけのxsltがなにも表示されません。
環境のせいだと思うのですがIE5で動作しますか?
起動時は拡張子xslのファイルをダブルクリックするだけです。
事情により環境をいじれないので確認させてください。
よろしくおねがいします
491: 2006/10/26(木)18:28 ID:Ni4Tuu8+(1) AAS
ウンコ
492: 2006/10/26(木)18:34 ID:??? AAS
元となるXMLにXSLTを<?xml-stylesheet ...?>で関連付けて、そっちを開けばOK。
493: 2006/10/26(木)18:38 ID:5D6Zlz9T(2/2) AAS
492
記述が漏れていてごめんなさい。
手順はそのようにしています。
494: 2006/10/30(月)11:26 ID:??? AAS
XML+XSLTのformからPostされたページをリロードすると、
データの再送信が行われないんだけど、
これってXSLで再送信するように変更することはできる?
495: 2006/11/18(土)20:13 ID:??? AAS
ブラウザの仕様のような気がする。
496: 2006/11/19(日)06:15 ID:??? AAS
JavaScript のリテラル部分に値を埋め込みたいんだけど、" → \" とかの変換て XSL でどうやるの?
497(1): 2007/01/25(木)13:51 ID:??? AAS
テンプレートの呼び出しについてですが、
呼び出されたテンプレートで、呼び出し元の要素名を使いたいです。
どのようにすればいいですか?
498(2): 2007/01/25(木)14:20 ID:GKXwIW4P(1) AAS
俺もテンプレートで聞きたいことが。
例えば
<fruit>
<apple>うまい</apple>
<banana>あんまりすきじゃない。</banana>
フルーツ。
</fruit>
っていうXMLがあったとして、
「フルーツ。」の部分にテンプレート適用したいんだが、
XPathとかで指定できないの?
499(1): 2007/01/26(金)01:44 ID:??? AAS
XQuery, XSLT 2 and XPath 2 Are W3C
Recommendations
だそうな。
>>497
呼び出し元が親の場合:
select="local-name(..)"
そのほか、親の親なら"local-name(../..)"
親以外から呼ばれる場合:
呼ぶ方:
<xsl:apply-template select="ほげほげ">
<xsl:with-param name="parent" select"."/>
</xsl:apply-template>
呼ばれる方:
<xsl:template match="ほげほげ">
<xsl:param name="parent"/>
<xsl:value-of select="local-name($parent)"/>
</xsl:template>
>>498
<xsl:apply-template select="text()"/>
ただし、appleとbananaの間などの空白や改行にも適用される。
500: 498 2007/01/26(金)06:55 ID:BzbrIFkB(1) AAS
>>499
どうも!できた
501: 2007/02/14(水)12:09 ID:??? AAS
>>455
半年以上経っているが…
Firefoxでページほぼ全てを選択(全部はダメ)→
右クリックから「選択した部分のソースを表示」
これで行ける。
502: 2007/02/14(水)14:32 ID:??? AAS
半年経ってりゃVerもあがるわな
503(2): 2007/03/15(木)02:01 ID:Qxvsm42D(1/2) AAS
手詰まってます。質問させてください。
servletでIEにXMLを返却して、サーバに置いてあるXSLTを読ませて画面を表示させたいです。
↓レスポンスのXML
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="サーバに置いてあるXSLTのパス"?>
:
画面の表示はできたのですが、レスポンスが異常に遅いです。
HTTPのリクエストを確認したところ、
IEがサーバからXMLを受け取ってから、XSLTに対して再度HTTPリクエストを投げるのに時間がかかっているようです。
これはIEのXMLプロセッサ(MSXML)の問題なのでしょうか?
そうなのであれば、レスポンスを向上させる手段としてどういった方法が一般的なのでしょうか?
何かご存知の方、いらっしゃいましたら助言いただきたいです。
よろしくお願いします。
504: 2007/03/15(木)02:18 ID:??? AAS
XMLのサイズ小さくしてみたらどうなる?
505: 503 2007/03/15(木)02:32 ID:Qxvsm42D(2/2) AAS
XSLT入門ページにあるような簡単なXMLで試してみましたが、結果は同じでした。
506: 2007/03/30(金)22:01 ID:??? AAS
>503
IEにXMLの変換をやらせるんじゃなくて、サーバ側で変換した結果をクライアントにかえしたら?
507: 2007/03/31(土)11:26 ID:jJ1h8S+F(1) AAS
XSLT2.0/XPATH2.0が勧告されているんだが...
興味無いか...○| ̄|_
508: 2007/04/03(火)01:44 ID:??? AAS
具体的に何が変わったのかは気になる
509: 2007/04/05(木)19:40 ID:??? AAS
力いっぱい亀レスしてみる。
>>484
<xsl:template match="foo">
<xsl:text>var msg = "</xsl:text>
<xsl:call-template name="escape">
<xsl:with-param name="str" select="."/>
</xsl:call-template>
<xsl:text>";</xsl:text>
</xsl:template>
<xsl:template name="escape">
<xsl:param name="str"/>
<xsl:if test="string-length($str) != 0">
<xsl:variable name="char" select="substring($str,1,1)"/>
<xsl:choose>
<xsl:when test="$char = '\'">\\</xsl:when>
<xsl:when test="$char = '"'">\"</xsl:when>
<xsl:when test="$char = ' '">\n</xsl:when>
<xsl:when test="$char = '	'">\t</xsl:when>
<xsl:otherwise><xsl:value-of select="$char"/></xsl:otherwise>
</xsl:choose>
<xsl:call-template name="escape">
<xsl:with-param name="str" select="substring($str,2)"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
510: 2008/03/05(水)06:00 ID:d95zJRJ0(1) AAS
SourceForge.net: PHP - XML_XSLT2Processor
外部リンク:sourceforge.net
JavaのXSLT2.0プロセッサ(SaxonとAltovaXML)をPHPで使えるようにするためのクラスらしい
外部リンク:xiss.g.hatena.ne.jp 経由
511: 2008/03/26(水)19:55 ID:??? AAS
XSL-FOの話題はここでいいの?
512: 2008/03/26(水)23:41 ID:??? AAS
いいんでないの
ほかにスレもないし
513: 2008/04/12(土)16:43 ID:??? AAS
すいません、XSLTの使用を今日から検討し始めたド初心者です。
掲示板の様な物を作成する為に、掲示板のタイトルと本文と書き込み日時をXMLで出力するPHPを書き、
別途表示の為のXSLTをスキンとして固定ファイルで用意しようと考えているのですが、
この方式で何処まで出来るのかがわからず、戸惑っています。
質問1:
例えば掲示板で良くある処理として、「3日以内の書き込みの場合にタイトルの最後に[最新情報]と追記する」等がありますが、
掲示板XMLのデータが「タイトル」「本文」「書き込み日時」しかなかったとした場合に、
XSLT側で[最新情報]と追記する方法はあるのでしょうか?
質問2:
仮に固定ファイルのXSLTでは「質問1」の処理が出来ないと仮定した場合での質問なのですが、
これらの処理の実現方法として、PHPで作成されるXML側で日付を判断し、
<status>NEW</status>
等を挿入しておくという方法を考えてみたのですが、
XML+XSLTでこの様な方法は一般的に行われているのでしょうか。(変じゃないですか?という事です^^;)
質問3:
XSLTを使う目的が「掲示板のスキン(見た目)変更をしやすく」といった目的なのですが、
質問1や質問2で例に挙げたような機能をいくつも追加した場合、
かえってスキンPHPファイルを用意してそれを変更するほうが簡単になってしまうのではないかと思ってしまいます。
スキン機能をXML+XSLTで実現するか、PHPで実現するか、どちらの方が良いか率直なご感想をお聞かせ願えないでしょうか?
(XSLTであればこんな時便利なはず!等etc...)
514: 2008/04/12(土)17:46 ID:??? AAS
A1.
無理
A2.
俺だったら要素じゃなくて属性を使うかもだけど
まあ好きにすればいいんじゃないの
A3.
世の中XSLTに対応したブラウザばかりじゃないとか
XSLTで込み入ったことをやろうとすると果てしなく面倒くさいとか
そもそもXMLにこだわる必要がどれだけあんのかとか
いろいろ思うことはあるけど
まあ好きにすればいいんじゃないの
515: 2008/04/12(土)18:11 ID:??? AAS
XSLTってどうみても帯に短し襷に長しだよな
もっと割り切った仕様にすればいいのに
中途半端に文字列処理とか入れるから
516: 2008/04/19(土)01:12 ID:??? AAS
A4.
お前が好きだ
517: 2008/04/20(日)18:54 ID:??? AAS
つまんね
518: 2008/06/11(水)03:05 ID:??? AAS
xalanを実行するときに元のXML文書に文書型宣言が含まれていると、xalanが
validationを行いDTDを毎回ダウンロードしてしまうのですが、これを止める
ことはできないでしょうか。xalanはjava版でバージョンは2.7.0-5です。
519: 2008/06/21(土)10:42 ID:k45WphEu(1) AAS
AA省
520: 2008/06/21(土)10:43 ID:??? AAS
だいぶずれてしまいましたねorz
521: 2008/06/21(土)23:22 ID:Cd2mCbay(1/2) AAS
XMLファイルAの中の要素1に入っている、
「〜〜.html%3FA」
というURLを
xslで、
<xsl:value-of select="要素1"/>
と指定して変換したXMLを見ると、%3FAの部分が「?」に
なってしまって、リンクできないんですけど、対処法
ご存知の方居ませんかね?
上下前次1-新書関写板覧索設栞歴
あと 37 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s