探検


XSL/XSLT

1名無しさん@お腹いっぱい。
垢版 |
01/09/05 10:49ID:dYMWGvtU
語ろう。ていうか教えて。
413nobodyさん
垢版 |
2006/03/09(木) 23:33:25ID:dDByu5bB
XML 貴族 ボヘミアン の検索結果のうち 日本語のページ 約 510 件中 1 - 100 件目 (0.29 秒)
414nobodyさん
垢版 |
2006/03/10(金) 10:59:20ID:???
>>413
510件という数字は多いのか?少ないのか?
Googleまで持ち出して何が言いたいんだ?







……という風に突っ込まれたくなければ意図不明瞭な一行レスをやめろ。
415nobodyさん
垢版 |
2006/03/10(金) 11:15:50ID:???
自分の発言に自信が持てないから逃げ道を作ってるんだよ察してやりなよ
そしてスルーしてやりなよ
416nobodyさん
垢版 |
2006/03/10(金) 11:27:58ID:???
みんなは貴族なの?
オイラはどうしても「型情報」って奴についてけねえだけどな。
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を表示させるソースってどこか公開されていませんか?
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 になって
から出来なくなったのかな?
421nobodyさん
垢版 |
2006/03/29(水) 11:37:28ID:Bmnd//MP
<foo count="10" />

とある場合、特定の処理を @count 回ループさせたいんですがどうすれば良いんでしょうか?
ループカウンタ付きのループ for(i=0; i<@count; i++) みたいな感じなんですけど、<xsl:for-each> じゃ
要素とかの集合しか指定できないですよね?
422nobodyさん
垢版 |
2006/03/29(水) 18:54:30ID:???
>>421

「XSLT 再帰処理」でGoogle検索してみれ
423nobodyさん
垢版 |
2006/03/29(水) 19:18:29ID:Bmnd//MP
すげぇ、ループを再起呼び出しでやるとは気づかなかったw
424nobodyさん
垢版 |
2006/03/29(水) 23:46:49ID:???
こいつは関数型言語みたいなもんだから
むしろ再帰の方が自然なんだな
425nobodyさん
垢版 |
2006/03/30(木) 08:26:06ID:???
>>423
他の方法で、できんことも無いけど、再帰が真っ当。
これを制せば、XSLTをほぼ手中に入れられる。
426nobodyさん
垢版 |
2006/03/32(土) 21:43:59ID:rvS9DXBc
ファイルメーカーのアプローチってどう思う?
ウェブプログラミングにxsltって有効?
427nobodyさん
垢版 |
2006/04/02(日) 01:48:27ID:???
ファイルメーカーが何やってるか知らんが
静的な部分は XSL で、動的な部分は XML で作れるならデータ転送量を
最小限に押さえられるので有効だと思う。サーバの負荷分散にもなるし。
ただ未対応ブラウザに対応するなら逆に高くなるかもしれん。
428nobodyさん
垢版 |
2006/04/03(月) 20:37:14ID:???
拡張関数(?)のexsltで本日の日付を取得したいのですが
クライアントサイドの一般的なパーサは対応しているのでしょうか?
処理としては要素の日付と本日の日付を比較して過去の情報は隠すという動きをさせたいです。
exsltが無理ならスクリプトでやってみます。
429nobodyさん
垢版 |
2006/04/06(木) 09:20:31ID:???
>>428
クライアントサイドの一般的なパーサって、どんなん?
IEやMozillaに付いてくような奴だったら駄目じゃね?
430nobodyさん
垢版 |
2006/04/06(木) 20:40:45ID:???
>>429
それです。
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
ありゃ、&copy; や &nbsp; は、です。
434nobodyさん
垢版 |
2006/04/08(土) 01:20:46ID:???
http://www.w3.org/TR/REC-html40/sgml/entities.html
ここを見て、copyなら&#169;, nbspなら&#160;と書くのが単純。
435nobodyさん
垢版 |
2006/04/08(土) 01:25:53ID:???
39
436nobodyさん
垢版 |
2006/04/09(日) 17:43:31ID:???
437nobodyさん
垢版 |
2006/04/11(火) 14:38:23ID:???
XML + XSL で XSL って作れる?
一般ユーザ用と管理者用で XSL を分けてたんだが、2〜3 のパラメータと条件分岐だけで
統合できそうなのが分かってきた。ただ一般ユーザには管理者用の XSL を見せたくないし。
438nobodyさん
垢版 |
2006/04/11(火) 20:50:36ID:???
XSLからXSLを出力するならxsl:namespace-aliasとかでぐぐると良いよ。
439nobodyさん
垢版 |
2006/04/19(水) 04:15:41ID:???
ブラウザごとの XSL 対応状況の一覧とか載ってるサイトご存知でしたら教えてたも m(_ _)m
440nobodyさん
垢版 |
2006/04/19(水) 19:35:12ID:???
一生懸命変換PGを作っていたのにWord2003で出来ちゃうのね。。。
441nobodyさん
垢版 |
2006/04/19(水) 20:30:42ID:???
``PG''……
442nobodyさん
垢版 |
2006/04/21(金) 07:18:54ID:???
Firefox 1.0.7 (Linux) で <xsl:value-of> の disable-output-escaping="no" が
利かないみたいなんですけど何か振替策ないでしょうか?
443nobodyさん
垢版 |
2006/04/21(金) 07:52:16ID:???
すみません、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>
444nobodyさん
垢版 |
2006/06/02(金) 14:43:12ID:H6C73k2s
御教授願います。
ループを回し表を作成したときに、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:[email protected]?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:[email protected]?subject=' + [行毎に定義されたメールテンプレ];
</script>

この様にした場合、<A>タグのIDパラメータが不正となってしまいます。

お聞きしたいのは、<A>タグのIDパラメータに変数$url_idを定義したいのです。
どなたか上手い方法をご存知無いでしょうか?
445nobodyさん
垢版 |
2006/06/02(金) 15:00:49ID:H6C73k2s
自己解決したので書いておきます。
直接変数内のデータを参照したい場合、{}で括ればいいらしいようです。

<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:[email protected]?subject=' + [行毎に定義されたメールテンプレ];
</script>
446nobodyさん
垢版 |
2006/06/06(火) 05:01:30ID:???
$を文字列として使いたいんだけど、
どうすればいいの?
447nobodyさん
垢版 |
2006/06/06(火) 19:27:27ID:???
<xsl:text>$</xsl:text>

<![CDATA$]]>
448nobodyさん
垢版 |
2006/06/06(火) 19:27:57ID:???
間違ったーーー!!!
449nobodyさん
垢版 |
2006/06/06(火) 20:29:03ID:???
>>447
これでうまくいきました。本当にありがとうございます。
450nobodyさん
垢版 |
2006/06/06(火) 20:47:00ID:???
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にどのように書き加えればいいのでしょうか?
451nobodyさん
垢版 |
2006/06/06(火) 21:24:43ID:???
<xsl:for-each select="aws:Argument[@Name != 'ItemPage']">
452nobodyさん
垢版 |
2006/06/06(火) 21:25:20ID:???
自信ないから上手くいってもいかなくても教えてね
453nobodyさん
垢版 |
2006/06/07(水) 00:01:38ID:???
>>451
ありがとうございます。
試してみた結果、ばっちり成功でした
454nobodyさん
垢版 |
2006/06/15(木) 17:44:27ID:bh/U7SOR
XMLからXMLに変換したいんですけど、
XSLTに<xsl:output method='xml' encoding='SHIFT_JIS'/>
みたいな感じで書いているのに
出力されるXML宣言が<?xml version="1.0" encoding="UTF-16"?>
と出力されるのは何ででしょうか?

ちなみにXMLファイルの変換には
VS2005VC++でIXMLDOMDocumentPtrのtransformNode()を使用しています。
455nobodyさん
垢版 |
2006/07/10(月) 11:50:48ID:AyMgINi+
えっと、XML 文書を XSL で HTML に変換し、
それに CSS を適用して見せるページを作っています。
意図するように見えているのですが、
Firefox がどのような HTML に変換しているのかを
確認したいと思っています。

Firefox で XSL による変換結果をファイルに
保存することってできますか?
つまり XSL 適用後の文書を保存したい、
Firefox を単に XSL プロセッサとして使いたいのです。
456nobodyさん
垢版 |
2006/07/11(火) 17:58:57ID:Wcdm37qK
XML ファイルの先頭で XML プロセッサに対して XSL ファイルを指示しますよね?
<?xml-stylesheet title="XSL_formatting" type="text/xsl"
href="http://resource.example.com/sample.xsl"; ?>
XML プロセッサとして Firefox を利用すると、
XML ファイルをおいてある場所以外の XSL ファイルを
指定した場合に「Security Error」になります。
これはいかんともしがたいのでしょうか?
457nobodyさん
垢版 |
2006/07/11(火) 18:20:50ID:???
Security Errorのあとにコロンがついてエラーの内容が書いてない?
セキュリティ上、別ドメインからのスクリプトの呼び出しはダメとかじゃなくて?
458nobodyさん
垢版 |
2006/07/11(火) 18:24:23ID:Wcdm37qK
Security Error: Content at http://example.com/test.xml
may not load data from http://orz.2ch.net/test.xsl

表示内容は上記の通りです。スクリプトと同じで他のドメイン
からの XSL ファイルは信用しないよってことですか。
全部ローカルにおいてたら Gecko でも IE でも処理
できるファイル群なので、ファイルの内容自体に誤りはないと思います。
459nobodyさん
垢版 |
2006/07/11(火) 18:38:12ID:???
CheckSameOriginError, Security Error: Content at %S may not load data from %S. セキュリティエラー: %S のコンテンツが %S からデータを読み取ることは禁止されて います。
460456=458
垢版 |
2006/07/11(火) 18:38:47ID:Wcdm37qK
IE だと http://example.com/ を信頼済みサイトに
登録することで、他のサイトの XSL ファイルも
ダウンロードして処理してくれるようになりました。
Firefox ではそれに対応する設定を見つけられませんでした。
身内で共通の CSS とか XSL 使おうと思ってて
どうせ内容いじれるのが自分だけなんで一カ所に
集めちゃおうと思ったんですが、セキュリティの
こと考えたらなんか根本的に間違ってた気がするので
あきらめます。
461nobodyさん
垢版 |
2006/07/11(火) 20:19:18ID:Wcdm37qK
ところで、 XPath による要素・属性の指定において、
「ルート直下の a または b という要素の下にある c という要素」
に関するテンプレートを書きたい時って、

/a/c に対するものと /b/c に対するものを別に
書く必要がありますか?まとめて /{a|b}/c のように記述
する方法はありませんでしょうか?
462nobodyさん
垢版 |
2006/07/11(火) 20:46:36ID:???
a and b
463nobodyさん
垢版 |
2006/07/12(水) 09:47:10ID:CjrVtdTv
<Arguments>

<Argument Name="Service" Value="" />
<Argument Name="AssociateTag" Value="test" />
<Argument Name="ItemPage" Value="1" />

</Arguments>

xsl:value-of selectを使って、testの値だけ抜き出したいのですが、
どのように書けばいいんでしょうか?
464nobodyさん
垢版 |
2006/07/12(水) 11:36:40ID:???
たまたま弄ってた所だから特別に教えてやる
Arguments/Argument[@Name='AssociateTag']/@Value
入門書くらい買え








ちがってたらゴメンネ
465nobodyさん
垢版 |
2006/07/13(木) 16:00:41ID:Lxav0c83
>>464
どうもありがとうございます。
うまくいきました!
466nobodyさん
垢版 |
2006/07/13(木) 17:27:49ID:Lxav0c83
document関数は外部のサイトも取得できるんでしょうか?
467nobodyさん
垢版 |
2006/07/13(木) 18:25:06ID:???
やってみよう!
わからなかったら聞いてみよう!
わかったことはみんなに知らせよう!
いけ!
468nobodyさん
垢版 |
2006/07/14(金) 20:02:42ID:BpYZj7V/
がんばって見た結果、たぶんできるっぽいです。

ところで

<xsl:for-each select="document('http://test.xml')

見たいにurlを入力したとき、urlに=だとか&だとかが入っているとエラーが出てしまいます。
どうやって書けばいいんでしょうか?
469nobodyさん
垢版 |
2006/07/14(金) 21:29:08ID:MY15XHq0
&は&だったかな。?だったかもしれない。
=はそのままでよかった気がする。

ttp://www.ne.jp/asahi/minazuki/bakera/html/reference/charref
470nobodyさん
垢版 |
2006/07/14(金) 21:30:47ID:???
すまん、参照がともに変換されてしまったorz
示したURLのページをもとにがんばってくれ。
471nobodyさん
垢版 |
2006/07/14(金) 23:47:41ID:BpYZj7V/
>>470
ありがとうございます
472nobodyさん
垢版 |
2006/07/22(土) 10:37:07ID:???
xml文章の中から、ユーザー側から入力した条件を元に、
検索して結果を表示するようなことは、xslのみで実現するのは可能でしょうか?
postができなそうなのでやっぱり不可能でしょうか?
473nobodyさん
垢版 |
2006/07/23(日) 00:28:31ID:???
xslのみ の意味がわからない
474nobodyさん
垢版 |
2006/07/23(日) 00:29:42ID:???
>>472
CGIでやるなら、いまのところCGIからXSLTプロセッサを呼び出すしかない。
475472
垢版 |
2006/07/23(日) 09:47:44ID:???
>>474
やっぱそうなりますよね。
xml文章中の特定の語句を検索して表示するような、
スクリプトが紹介されていたので、
postができれば検索システムも作れるそうだなと思った次第です。

>>473
xslって簡易プログラミング言語みたいなものだと思っていたので、
変な言い方だったらすみません。
476nobodyさん
垢版 |
2006/07/24(月) 14:48:21ID:uSZzoH8+
文字列をエンコードする関数って
どんなのがありますか?
477nobodyさん
垢版 |
2006/07/25(火) 01:05:04ID:???
postされたデータを使ってXSLTを作り変換すれば?
xsl:if の test 部分をpostされたデータにすれば出来そうな気がする
478nobodyさん
垢版 |
2006/08/02(水) 19:55:15ID:qF5sPr3L
document関数でurlを指定するとき、xsl:variable nameはつかえないんでしょうか?

<xsl:variable name="●●">○○.xml</xsl:variable>

<xsl:for-each select="document($●●)/▲▲/■■">

</xsl:for-each>

こんな感じで入力すると、$●●に○○.xmlが入らずに
$●●のままなんですが・・・
479nobodyさん
垢版 |
2006/08/02(水) 20:13:17ID:qF5sPr3L
>>478
すいません自己解決しました。
480nobodyさん
垢版 |
2006/08/06(日) 02:13:08ID:???
>>479
自己解決したら、解決法かけや
481nobodyさん
垢版 |
2006/08/17(木) 06:59:21ID:???
すみません、XML で特定の条件に一致する要素だけにちょっとした変更を
加えたいのですが、それ以外の要素を無変換で出す処理はどう書けば良いの
でしょうか? 例えば XML 中の password という要素の内容をマスクする場合:

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

<xsl:template match="*">
 <xsl:choose>
  <xsl:when test="name(.)='password'">
   <password>****</password>
  </xsl:when>
  <xsl:otherwise>
   <xsl:element name="(ここはどうすれば?)">
    <xsl:for-each select="@*">
     <xsl:attribute name="(ここはどうすれば?)"><xsl:value-of select="." /></xsl:attribute>
    </xsl:for-each>
    <xsl:apply-templates select="node()" />
   </xsl:element>
  </xsl:otherwise>
 </xsl:choose>
</xsl:template>
482nobodyさん
垢版 |
2006/08/17(木) 15:51:08ID:???
<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="http://...";としておいて、match="foo:password"としなければならない。
xmlns="http://...";としておいてmatch="password"としてもだめ。
483nobodyさん
垢版 |
2006/08/18(金) 18:36:22ID:???
>>482
お、出来た! W3C の <xsl:copy> のところに書いてありますね。意味が分からんかったのでスルーしてましたが。
484nobodyさん
垢版 |
2006/08/26(土) 03:28:19ID:???
すみません、文字列の一括置換は XSL でどうやったら良いんでしょうか。
XML から JavaScript の文字列リテラルに変換するときにエスケープする必要があるのですが。

<foo>say "good morning"</foo>
 ↓
var msg = "say \"good morning\"";
485nobodyさん
垢版 |
2006/09/27(水) 01:19:07ID:???
XSLT内で外部のJavaScriptファイルを読む宣言をするとIEでホワイトアウトするのですが。
諸事情により内部に直接JavaScriptを書きたくなくて。。
どうしたらよいのでしょうか?
486nobodyさん
垢版 |
2006/09/27(水) 02:25:20ID:???
document関数はXMLしか読み込めないよ。Javascirptを読もうとするとエラーになるので多分それでホワイトアウトしてる。
<script src="(スクリプトのURL)"/>
みたいな要素を出力した方がよいかと。

#エスパーレベル低いので外してるかな?
487485
垢版 |
2006/09/27(水) 09:27:24ID:???
分かりにくい書き方してすんません。
で、ご指摘の方法でやっていたんですがうまくいきません。
むしろJavaScriptソースを直接書けば動きます。
Firefoxならどっちでもちゃんと動くんですけど。。

もう少し詳しく状況を説明しておくと
・JavaでXSL変換を行っている
・変換後データはStringとして吐き出される
・それをそのままサーブレットのPrintWriterを使って表示
してます。
488nobodyさん
垢版 |
2006/09/29(金) 01:06:23ID:???
>487
<script src="(スクリプトのURL)"/> でリンクしたJSファイルと
PrintWriterが吐くページのエンコーディングが合ってないとかか?
489nobodyさん
垢版 |
2006/10/03(火) 16:26:40ID:???
>487
文字コードはすべてUTF-8で統一してあります。
さらに、response.setChar〜でUTF-8を設定してあるので完璧。。だと思います。

javascriptのソース次第でなんとなりそうな気もしてきたのでとりあえずそっちで試行錯誤してみます。
490nobodyさん
垢版 |
2006/10/26(木) 13:25:08ID:5D6Zlz9T
変鉄もないxmlファイルのルート以下のタグ名をmethodはhtmlで表示させるだけのxsltがなにも表示されません。
環境のせいだと思うのですがIE5で動作しますか?
起動時は拡張子xslのファイルをダブルクリックするだけです。
事情により環境をいじれないので確認させてください。
よろしくおねがいします
491nobodyさん
垢版 |
2006/10/26(木) 18:28:24ID:Ni4Tuu8+
ウンコ
492nobodyさん
垢版 |
2006/10/26(木) 18:34:48ID:???
元となるXMLにXSLTを<?xml-stylesheet ...?>で関連付けて、そっちを開けばOK。
493nobodyさん
垢版 |
2006/10/26(木) 18:38:30ID:5D6Zlz9T
492
記述が漏れていてごめんなさい。
手順はそのようにしています。
494nobodyさん
垢版 |
2006/10/30(月) 11:26:45ID:???
XML+XSLTのformからPostされたページをリロードすると、
データの再送信が行われないんだけど、
これってXSLで再送信するように変更することはできる?
495nobodyさん
垢版 |
2006/11/18(土) 20:13:39ID:???
ブラウザの仕様のような気がする。
496nobodyさん
垢版 |
2006/11/19(日) 06:15:00ID:???
JavaScript のリテラル部分に値を埋め込みたいんだけど、" → \" とかの変換て XSL でどうやるの?
497nobodyさん
垢版 |
2007/01/25(木) 13:51:41ID:???
テンプレートの呼び出しについてですが、
呼び出されたテンプレートで、呼び出し元の要素名を使いたいです。
どのようにすればいいですか?
498nobodyさん
垢版 |
2007/01/25(木) 14:20:29ID:GKXwIW4P
俺もテンプレートで聞きたいことが。
例えば

<fruit>
<apple>うまい</apple>
<banana>あんまりすきじゃない。</banana>
フルーツ。
</fruit>

っていうXMLがあったとして、
「フルーツ。」の部分にテンプレート適用したいんだが、
XPathとかで指定できないの?
499nobodyさん
垢版 |
2007/01/26(金) 01:44:49ID:???
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の間などの空白や改行にも適用される。
500498
垢版 |
2007/01/26(金) 06:55:42ID:BzbrIFkB
>>499
どうも!できた
501nobodyさん
垢版 |
2007/02/14(水) 12:09:05ID:???
>>455
半年以上経っているが…

Firefoxでページほぼ全てを選択(全部はダメ)→
右クリックから「選択した部分のソースを表示」
これで行ける。
502nobodyさん
垢版 |
2007/02/14(水) 14:32:44ID:???
半年経ってりゃVerもあがるわな
503nobodyさん
垢版 |
2007/03/15(木) 02:01:11ID:Qxvsm42D
手詰まってます。質問させてください。
servletでIEにXMLを返却して、サーバに置いてあるXSLTを読ませて画面を表示させたいです。
↓レスポンスのXML
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="サーバに置いてあるXSLTのパス"?>

画面の表示はできたのですが、レスポンスが異常に遅いです。
HTTPのリクエストを確認したところ、
IEがサーバからXMLを受け取ってから、XSLTに対して再度HTTPリクエストを投げるのに時間がかかっているようです。
これはIEのXMLプロセッサ(MSXML)の問題なのでしょうか?
そうなのであれば、レスポンスを向上させる手段としてどういった方法が一般的なのでしょうか?
何かご存知の方、いらっしゃいましたら助言いただきたいです。
よろしくお願いします。
504nobodyさん
垢版 |
2007/03/15(木) 02:18:33ID:???
XMLのサイズ小さくしてみたらどうなる?
505503
垢版 |
2007/03/15(木) 02:32:34ID:Qxvsm42D
XSLT入門ページにあるような簡単なXMLで試してみましたが、結果は同じでした。
506nobodyさん
垢版 |
2007/03/30(金) 22:01:54ID:???
>503
IEにXMLの変換をやらせるんじゃなくて、サーバ側で変換した結果をクライアントにかえしたら?
507nobodyさん
垢版 |
2007/03/31(土) 11:26:38ID:jJ1h8S+F
XSLT2.0/XPATH2.0が勧告されているんだが...

興味無いか...○| ̄|_
508nobodyさん
垢版 |
2007/04/03(火) 01:44:44ID:???
具体的に何が変わったのかは気になる
509nobodyさん
垢版 |
2007/04/05(木) 19:40:38ID:???
力いっぱい亀レスしてみる。

>>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 = '&quot;'">\"</xsl:when>
<xsl:when test="$char = '&#10;'">\n</xsl:when>
<xsl:when test="$char = '&#9;'">\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>
510nobodyさん
垢版 |
2008/03/05(水) 06:00:45ID:d95zJRJ0
SourceForge.net: PHP - XML_XSLT2Processor
http://sourceforge.net/projects/xslt2processor/
JavaのXSLT2.0プロセッサ(SaxonとAltovaXML)をPHPで使えるようにするためのクラスらしい

ttp://xiss.g.hatena.ne.jp/orzccc/20080301/php_xslt2processor 経由
511nobodyさん
垢版 |
2008/03/26(水) 19:55:43ID:???
XSL-FOの話題はここでいいの?
512nobodyさん
垢版 |
2008/03/26(水) 23:41:09ID:???
いいんでないの
ほかにスレもないし
レスを投稿する


ニューススポーツなんでも実況