XSL/XSLTat PHP
XSL/XSLT - 暇つぶし2ch308:nobodyさん
04/09/07 09:29
>>306
是非はともかくそんなとこのソースを元に騒いでんの?w

309:nobodyさん
04/09/07 14:14
XMLのスレにマルチしまくってるから放置しとけ

310:nobodyさん
04/09/07 17:02
>>307
じゃあまずガソリンスタンドをたたいてくれ。

311:nobodyさん
04/09/07 21:05
気象庁職員必死だな(w

312:nobodyさん
04/09/08 11:32
306,307 は気象庁を、
310 はガソリンを、
308,311 は住民を、
各自、自由に叩いてください。
313 は XSL/XSLT ネタ、よろしく。

313:nobodyさん
04/09/09 02:59
気象庁住民はガソリンで逝ってよし。

314:nobodyさん
04/09/09 09:57
XSL/XSLT/ネタではなく
XSL/XSLTのネタよろしく。

315:nobodyさん
04/09/24 05:09:23 /pWgzu1/
<a id="a0">
 <b id="b0">
  <c>foo0</c>
  <c>bar0</c>
 </b>
 <b id="b1">
  <c>foo1</c>
  <c>bar1</c>
 </b>
</a>

のようなデータから、<c>の値を2つ指定して最初に出てくる共通の親要素を
見つけるにはどうすればよいでしょうか?

例えば、"foo0"と"bar0"なら "b0"、"foo0"と"foo1"なら"a0"がほしいです。
共通の親をすべてならなんとかなるのですが、
その中で最初にマッチする親だとさっぱりわかりません。
よろしくおねがいします。

316:nobodyさん
04/09/25 10:50:09
>>315

(descendant::c[. = 'foo0']/ancestor::*[./descendant::c[. = 'bar1']])[last()]/@id

317:316
04/09/26 08:08:17
後で考えたら、えらい無駄な事をしてるな、と。
/descendant::c[self::node() = 'foo0']/ancestor::*[descendant::c = 'foo1'][position() = 1]
これでも、共通且つ最初にマッチする先祖を得られると思う。


318:315
04/09/27 04:31:18
>>316
ありがとうございます。いけそうです。
再帰ばっかり考えてました。

自分のXPath能力の無さに(´・ω・`)ショボーン

319:nobodyさん
04/09/28 17:39:48
質問です。

XSLT で <a href="javascript:foo('bar')">...</a> のようなタグを生成したいのですが、
引用符のエスケープの仕方がよくわかりません。ご存知の方、ご回答をお願いいたします。

現在はこんなコードを書いてます (エラーになります)
<a href="{concat('javascript:foo(', ''', @bar, ''', ')')}">

320:319
04/09/28 17:41:28
>>319
化けてしまいましたが、''' のところは '&apos;' です。

321:319
04/09/28 18:03:41
>>319
<xsl:attibute> を使えばいいのですね。自己解決しますた。お騒がせしました。


322:nobodyさん
04/09/28 20:00:16

こういう事ですね?
<xsl:element name="a">
<xsl:attribute name="href">javascript:foo(&apos;bar&apos;)</xsl:attribute>
<xsl:apply-templates />
</xsl:element>

コピペするならこっち
<xsl:element name="a">
<xsl:attribute name="href">javascript:foo(&apos;bar&apos;)</xsl:attribute>
<xsl:apply-templates />
</xsl:element>

アンカー・テキスト不変なら、こっち
<xsl:element name="a">
<xsl:attribute name="href">javascript:foo(&apos;bar&apos;)</xsl:attribute>
アンカー・テキスト
</xsl:element>


323:nobodyさん
04/10/11 13:28:18
XSLT Standard Library
URLリンク(xsltsl.sourceforge.net)

exsltみたいなライブラリ集だけど、こっちの方が実用的?

324:nobodyさん
04/10/14 23:53:23 DOJgSO2G
XML SchemaからXSLTの雛形というかスケルトンというか
土台を出力してくれるようなツールって無いでしょうか?
フルスクラッチで作るの、面倒じゃないですか?

325:nobodyさん
04/10/15 00:48:57
>>324
スレ違いか
スレリンク(hp板)


326:nobodyさん
04/12/06 00:30:36
data1.xmlというファイルがあって中にxslファイルの参照先も書いてあるとします。
<xml...
<xslt:sheet1.xsl.....
<DataList>
<Data ID="0">
<String>データ0</String>
</Data>
<Data ID="0">
<String>データ0</String>
</Data>
<Data ID="0">
<String>データ0</String>
</Data>
</DataList>
このdata1.xmlファイルをdata1.xml?id=0みたいな呼び出し方をしてxslファイルにid=0という値を渡す方法ってあるのでしょうか?


327:nobodyさん
04/12/06 15:30:17
何言いたいんだかようわからん

328:nobodyさん
04/12/06 15:34:45 jrlDRA4f
URLを打ち込むときに
data1.xml?id=0と打ち込み、ID=0の商品に関する情報だけを
表示したいんです。
URLで打ち込んだデータをXSL内の変数に取り込みたいのです。
現在だと、hrefつかってもIDの数だけxmlファイルを作成しないと
いけなくなってしまうんです。

329:nobodyさん
04/12/23 23:41:54
>>328
今更ながら、xsltで全て作成してjavascriptでlocation.queryから引数受け取ってwindowのロード時に違うノードサクージョ

330:nobodyさん
05/01/08 15:33:14
すいません質問があります。
MSXSLを用いて変換を行おうとしているのですが
コマンドを打ち込んだときに

必要な属性'{URLリンク(www.w3.org)' が見つかりません

という変なエラーメッセージが出てしまいます。これはどうすればいいんでしょうか?

331:nobodyさん
05/01/08 17:10:58
330ですが
解決しちゃいました どうもです

332:nobodyさん
05/01/10 19:16:25
すみませんが誰かご教授下さい。 (マルチポストで申し訳ありません)

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:nobodyさん
05/01/10 19:48:07
アホか。マルチポストに返答するわけ無いだろ。

334:nobodyさん
05/01/22 19:16:33 WsL3wQoU
<xsl:stylesheet xmlns:xsl="URLリンク(www.w3.org)(ry xmlns:aws="URLリンク(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:52 WsL3wQoU
ああっ、途中で送ってしまった… orz

>>334のようにやると下のテンプレートの中身へ行かない?ようなのですが
どこに問題があるのでしょう?

336:nobodyさん
05/01/24 03:30:34
>>332
もう解決してるのかもしれんが
//ele[not(@id=following-sibling::node()/@id)]/@id
とかでどうすか?

337:nobodyさん
05/01/30 14:52:43 0RSaGusl
xmlをエクセルから作ってるんですが、日付が1900年形式でだされてしまいます。
それを表示する際に、dd-mmm-yyのフォーマットで表示したいんですが、どうすればよいでしょうか?



338:nobodyさん
05/01/30 20:37:49 0RSaGusl
URLリンク(exslt.org)のテンプレート使ってやってみたんですが
すごい遅くなりました。前もってデータを変換してXMLをつくった
方が良さそうです...

339:nobodyさん
05/04/09 23:05:41 0FjmIeSR
ノード名じゃなくて値がQNameのときに、それが特定のNSに属してるかってどうやって判断できる?

<先祖のどこか xmlns:x="URLリンク(pc8.2ch.net)">
...中略...<ここ この属性の値をチェックしたい="x:999654569"/>

node系関数のnamespace-uri()は値は見れないし、
string系の関数じゃ、xが本当にURLリンク(pc8.2ch.net)なのかわからん。

ずうっと名前空間宣言を全部フォローして自分で覚えとくしかないのか?

340:nobodyさん
05/04/21 17:08:59
XMLもXSLもXSLTも何も知りません。


Aに1・2という情報?属性?を付けて
Bに2・3を付けて
Cに1を付けて


1が付いているのはA・C
2が付いているのはA・B
3が付いているのはB

というように表示するにはどうすればいいでしょう

341:nobodyさん
05/04/21 18:15:48
>>340
> XMLもXSLもXSLTも何も知りません。
勉強しろ。アフォか。

342:nobodyさん
05/04/21 22:02:56
System.out.println("1が付いているのはA・C");
System.out.println("2が付いているのはA・B");
System.out.println("3が付いているのはB");


343:nobodyさん
05/04/21 23:30:22
いや>>340的にはこっちのほうがわかりやすかろう。

MsgBox "1が付いているのはA・C", vbInformation
MsgBox "2が付いているのはA・B", vbInformation
MsgBox "3が付いているのはB", vbInformation


344:nobodyさん
05/07/29 15:21:12
デフォルトの名前空間が指定されている時、プレフィックスの無い Element は XPath でどう表現すればいいの?

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="design.xsl"?>
<hage:root xmlns="URLリンク(example.com)<)">
<item1>あいうえお</item1>
<item2>かきくけこ</item2>
</hage:root>

こんな XML から "あいうえお"を取り出したいんだけど /hage:root/item1 じゃうまくいかないみたい。

345:nobodyさん
05/08/04 10:02:40
スタイルシート側(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:nobodyさん
05/08/14 13:37:07 XDX8Ip5H
質問です。

UTF8で配信されるXMLをSHIFT_JISでHTML化したい
場合は

①JAVAのXMLパーサーとか使う
②perlとかphpでSOAP
なんていう方法しかありませんか?

現在はXSLTで簡単にスタイルシートあててやってますが
SHIFT_JISで出力するのは無理ぽ。。です。
どうにか方法はありますのでしょうか。。

携帯サイトを運営しているのですが
UTF8じゃ文字ばけするぞゴラァ!という
クレームが多くて困ってます。

347:nobodyさん
05/08/14 15:10:24
>>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="URLリンク(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:nobodyさん
05/08/14 18:40:08
>>347

ご丁寧に有難う御座います。
<xsl:output method="html" encoding="Shift_JIS" />
なんてタグがあるなんて知りませんでした。。orz

早速、その方法を試してみました。

結果報告

①PCブラウザで見る(IE)
ホワイトアウトしてしまいました。
右クリでエンコード指定でシフトジスにすると表示されました。

②元からUTF8対応携帯で見る
文字化けしてしまいました。

③シフトジスしか対応していない携帯で見る
うまく表示されるようになりました。

つまり 今まで見えてた①②は見えなくなりましたが
③は見えるようになりました。

恐らくブラウザ側ではUTF8として認識しているためだと
思います。

素直にphpのxmlパーサーとかでやりつかね・・・
(php5入ってないので・・・SOAP無理ぽ)



349:nobodyさん
05/08/14 18:50:00
>>348
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
を挿入してみたらどうですかね。

350:nobodyさん
05/08/14 19:36:51
>>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:nobodyさん
05/08/14 22:31:27
>>349
>>350

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
もやってみましたが、同様の結果でした。

どうもXSLTだけでの解決は難しそうなので
PHPでやってみます。

変更できたらまたご報告します。

(ちょちょっとPHPのXMLパーサ関数でやってみましたが、できそうです。)

352:344
05/08/17 20:33:45
>345
わざわざ携帯から長いレスをサンクス
俺のレスの前が3ヶ月前だったので回答は期待できないと思ってスレみてなかったよorz

結局質問してから別の場所で答えを見つけたんだけど、
XSL で XPATH 書いても XSL で定義した既定のネームスペースは XPath には適用されないってことなんだよな。
なんでそんな変な仕様なのか理解に苦しむけど。
てことで、 XML の既定のネームスペースを XSL 側では Prefix 付きで定義することで解決しました。


353:nobodyさん
05/08/18 19:39:40
ちょっとYOUはまだ勘違いしてるかも…。そこらへんはXSLTはまともな仕様でつよ。
もっと名前空間のよさを感じてちょうだい!!!!

そして私は

354:344
05/08/18 22:02:59
URLリンク(www2.xml.gr.jp)
あたりを見て >352 のような結論に至ったわけだが、なんか勘違いがある?と思って
改めてリンク先のスレッドを読んでると
URLリンク(www2.xml.gr.jp)

> さらに、XPath式中のQNameを展開するときには、以下のルールが成り立ちます。
> 2. プリフィックスがついていない場合、ネームスペースURIはnullになる。
とあるな。確かに勘違いしてたかも。

> そして私は
続きが気になるよ(´・ω・`)


355:初心者
05/09/04 03:53:09
どうか教えてください。
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="URLリンク(images.amazon.com)" width="xxx" height="xxx" alt="xxx">になってしまい、閉じタグをいれることができません。
xsltでどう指定すると閉じタグをいれることができるのでしょうか?

356:nobodyさん
05/09/04 10:59:31
<xsl:output method="xml"/>
をxsl:stylesheetの直下に入れる、かな。
XHTMLでないHTMLとして出力されていると思われ。

357:初心者
05/09/05 02:29:25
>>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:初心者
05/09/05 02:47:17
ゴメンナサイ。
ググったら見つけました。

<xsl:output method="xml" omit-xml-declaration="yes" /> とすると、XML 宣言をしないようにできるようですが
実際には出力されてしまいます。
なにかおかしいですかね?

359:nobodyさん
05/09/10 01:33:29
どっちでもいいけど
alt="{$変数名}"
とは書かないの?
call-templateする予定があるとか??
あと最初以外にXML宣言入るのは文法の問題あるよ。
ただUAが無視してくれているだけだけど。

360:nobodyさん
05/09/29 03:07:41
age

どなたかXSLT2.0の話でも…

361:nobodyさん
05/09/29 11:45:59
XSLTとDSSSLのいいとこどりみたいなXSieve
URLリンク(xsieve.sourceforge.net)

362:nobodyさん
05/10/01 21:07:44
今アマゾンウェブサービスでXSLファイルを書いてるのですが
何故かVersion=2005-09-15だと、StyleにXSLファイル指定してもうまくいきません。
AWSでXSLやるときの条件みたいなものって何かありますか?

363:nobodyさん
05/10/04 17:41:50 otfuFaaW
XSLTを書いていると、かなり長くなってしまったんですが、XSLTファイルをモジュールや関数みたいに分割することはできますか。
仕様書をみたけど、それらしい機能が見つかりませんでした。

364:nobodyさん
05/10/04 21:01:50
xsl:include, xsl:import


365:nobodyさん
05/10/04 21:53:53 otfuFaaW
>>364
ありがとう。スタイルシートの取り込みってあったから、てっきりCSSのことだと思ってた。
XSLTファイルじたいがスタイルシートなのね。べんきょうになりますた。

366:nobodyさん
05/10/15 16:29:33 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の名前で参照するにはどうやればよいのでしょうか。



367:サッカー少年大好き
05/10/15 17:00:04
/child::A/child::*[attribute::key='str']/attribute::value

でいけると思われ。
(child::は省略可、attribute::は@に置換可)

結論を言うと、XPathの勉強をおすすめする。

368:訂正
05/10/15 17:04:51
child::*はchild::Bにした方がいいかもしんね。
strにはkeyの値を入れるんだよ。

369:nobodyさん
05/10/15 21:29:57
出来ましたありがとうございます。
本来なら勉強しなきゃいけないんですが、助かりました。

370:nobodyさん
05/10/17 19:35:15 SiiJse0Y
ソースは
URLリンク(www.wakkaya.com)
URLリンク(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:nobodyさん
05/10/17 20:58:48
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
05/10/17 23:18:37
>>371
うまくいきました!
本当に助かりました。有り難う御座います。

373:370
05/10/18 08:05:21
連続質問ですみません。ソースは引き続き
URLリンク(www.wakkaya.com)
URLリンク(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:nobodyさん
05/10/18 12:21:24
>連続質問ですみません。ソースは引き続き
とか書くと相手にされない件

375:nobodyさん
05/10/18 16:18:41 EpeUQJeg
XSLTで変数使えるのは分かったんだけど、

「x=x+1」のような

インクリメントってできないの?


376:nobodyさん
05/10/18 16:58:00
>>373
371と同じ。

377:nobodyさん
05/10/18 23:23:32
>>375
マルチポストですね?

378:nobodyさん
05/10/19 15:52:23 HblKNOzD
>>374
すみません。気を付けます。

>>376
アドバイスあるが等御座います。
もすこしfor-each やifやwhen勉強して出直してきます・・・

379:nobodyさん
05/10/19 16:32:01
そっちよりもXPathを覚えるほうがいいかと。

380:nobodyさん
05/10/20 13:50:48
>>379
仰せの通りXPathについていろいろ調べたことろ、

<xsl:for-each select="data[contains(name, '3') and uriage > 0 ]">

とするだけでNaNをはじくことが出来ました。
なんか凄い初歩的で恥ずかしい質問であるにもかかわらずお答え下さった皆様方、
この度は誠に有り難う御座います。

これを機会にXPathを精進・・

381:nobodyさん
05/10/22 08:44:56
>>380
ていうかお前にはxmlはおろかwebそのもののセンスも無いからやめとけ

382:nobodyさん
05/10/22 20:01:27
遅すぎるお前のレスもセンスがねーよw 2chやめろな。

383:nobodyさん
05/10/23 01:17:07
ん?逆切れかマケウチ君

384:nobodyさん
05/10/23 20:44:14
>>380
低脳が。センスのないHPもさっさとたたみな
キモイんだよ、デザインが

385:nobodyさん
05/10/24 09:48:44 3//Wc9qN
HPって「たたむ」って表現するんだ・・・初めてしったよ

386:nobodyさん
05/11/11 13:59:20 nEB8ZVf7
xreaでサーバーサイド変換て出来るんですか?

URLリンク(www.atmarkit.co.jp)

を試してみようと思いましたが

URLリンク(sb.xrea.com)

どう見ても無理です。

本当にありがとうございました

387:385
05/11/11 14:02:26
>>386
と思ったらもうインストローリングされてました。
私の記述ミスです。

本年もよろしくご指導のほどお願いいたします

388:nobodyさん
05/11/11 14:10:06
インストローリング の検索結果のうち 日本語のページ 約 286 件

389:nobodyさん
05/11/11 20:58:02
ローリングストーンズのヴォーカル無い曲。

390:nobodyさん
05/11/17 02:28:40
バージョン2が勧告候補になりますた。
早めに勉強しましょう。

391:nobodyさん
05/11/17 08:43:17
>>390
新機能とか変更点を簡潔に説明したサイト教えてけれ。

392:nobodyさん
05/11/18 17:50:43
URLリンク(pcweb.mycom.co.jp)

393:nobodyさん
05/12/13 01:57:44
>>344
数ヶ月ぶりに自己レス

/[local-name()="root" and namespace-uri()="URLリンク(example.com)"]/item1

でどうだろう?


394:nobodyさん
05/12/14 09:14:43
>>393
いや、だから>>345がスタイルシートの中でURIが一緒な
任意のプリフィクスを付けろとアドバイスしてるだろう。
なんでそんな面倒なことするの。しかも間違ってるし。

395:nobodyさん
05/12/14 11:59:03
>>393
まず名前空間から勉強し直せ、ゴラァァ!!

396:nobodyさん
05/12/15 20:20:47
>>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:nobodyさん
06/03/04 02:07:19 c1CTCPap
某所より誘導されました。
XSLT(XPath)で、Textや属性のQNameってどうやって調べれば良いんでしょうか?
例えば、
<ns0:boards xmlns:ns0="URLリンク(2ch.net)<)"でローカル名が"webprog"の値を持つboard要素」って、
どうやって調べればよいのか…。
全然知らないんですがXPath1.0じゃだめでXPath2.0の●●じゃないと無理とかあるんでしょうか。

398:nobodyさん
06/03/04 02:08:42
訂正
×「値が、…
○「属性値が、…

399:nobodyさん
06/03/04 08:57:04
>>397

何故、属性値の内容が展開されるんだ?
基本的にはstringだろ?


400:nobodyさん
06/03/04 09:38:14
>>397
詞ね

<xsl:template match="/boards/board[@nick=concat(name(namespace::*[.='URLリンク(2ch.net)']),':webprog')]">
<xsl:value-of select="@nick"/>
</xsl:template>

401:nobodyさん
06/03/04 09:45:21
/boards/ns0:boards/;

402:nobodyさん
06/03/04 12:59:39
うひ(^_^;)
ありがとうございます。
頂いた答えをヒントにして、苦節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:nobodyさん
06/03/04 13:01:00 c1CTCPap
>>399

XMLSchemaではQNameという型があります。>>397のnickのように使われます。
よく?使われる例は、
<hoge xmlns:xsd="URLリンク(www.w3.org)" xmlns:xsi="URLリンク(www.w3.org)">
 <value xsi:type="xsd:string">123456789</value>
</hoge>
だと、/hoge/value の値は、文字列”123456789”で、

<hoge xmlns:xsd="URLリンク(www.w3.org)" xmlns:xsi="URLリンク(www.w3.org)">
 <value xsi:type="xsd:int">123456789</value>
</hoge>
だと、/hoge/value の値は、32bit整数 123456789 で、

<hoge xmlns:tns="URLリンク(www.2ch.net)<)">
 <value xsi:type="tns:code">123456789</value>
</hoge>
だと、/hoge/value の値は、名前空間URLリンク(www.2ch.net)で定義されたcode型の123456789、
なんて事になります。

でも、その直感はあながち間違いでもないように思えるのは、>>402に書いたとおりです。

404:nobodyさん
06/03/04 19:16:02
値がドキュメントの構成から離れて利用できないこと自体が逝かれてる。
よっぽどのアホがこんな仕様作ったんだろう。

405:nobodyさん
06/03/05 07:39:58
>>403

なるほど、スキーマで使うのか
ボヘミアンな俺には縁が無さそうだが、
一つ勉強になった

でもよ、データ型が必要なら、それを前提としたもの、
例えば、XPath1.0より2.0を使った方がいいんじゃね?

貴族がボヘミアンを振る舞えったって、やっぱりぎこちないだろ

406:nobodyさん
06/03/05 14:59:23 noB5/pAr
データ型というか、QNameだけ特におかしいんだよ。
QNameの例としてxsi:typeの例を挙げたのが誤解されたかもしれんが。

スレリンク(tech板:108番)

XPath2.0だと
スレリンク(tech板:105番)
みたいに簡潔に書けるの?

407:nobodyさん
06/03/05 20:28:28
XPath1.0だどQName型と言う概念が無いから、string型で辻褄を合わせなきゃならんけど
2.0は型情報を前提としている貴族主義だから、QName型ならQName型で処理できるんじゃないかな。

...と言いつつ、俺もよく分からん。
でも、XSLT・XPath1.0ってのは「シンプル・イズ・ベスト」を信仰するボヘミアン派だから、
如何せんXMLSchemaとは相性が良くないと思う。

408:nobodyさん
06/03/07 00:42:38 s8zBddvo
貴族と浮浪者、どちらになりたいか、って話?

409:nobodyさん
06/03/07 06:40:25
他人と話がしたいなら一般的でない形容はやめたらどうだ?

410:nobodyさん
06/03/07 08:07:09
XMLユーザの貴族とボヘミアンって一般的でないのか?

411:nobodyさん
06/03/07 08:36:15
今すぐジャーゴンを使うのを止めろ

412:nobodyさん
06/03/07 20:15:46
皆中国語使用推奨

413:nobodyさん
06/03/09 23:33:25 dDByu5bB
XML 貴族 ボヘミアン の検索結果のうち 日本語のページ 約 510 件中 1 - 100 件目 (0.29 秒)


414:nobodyさん
06/03/10 10:59:20
>>413
510件という数字は多いのか?少ないのか?
Googleまで持ち出して何が言いたいんだ?







……という風に突っ込まれたくなければ意図不明瞭な一行レスをやめろ。


415:nobodyさん
06/03/10 11:15:50
自分の発言に自信が持てないから逃げ道を作ってるんだよ察してやりなよ
そしてスルーしてやりなよ

416:nobodyさん
06/03/10 11:27:58
みんなは貴族なの?
オイラはどうしても「型情報」って奴についてけねえだけどな。
DTD+DateTypeで十分だと思うがな...

417:nobodyさん
06/03/10 22:11:55
まぁついてこられない人が居るのは否定しないのが貴族

418:nobodyさん
06/03/18 20:53:13 eqYBhKgI
今ASP.NETでRSSの読み込み・表示をしているのですが
RSS1.0はとりあえず表示できたのですが、RSS2.0が全然ダメです
XSLTファイルのRSS2.0を表示させるソースってどこか公開されていませんか?

419:418
06/03/18 21:50:23
事故解決しました

420:nobodyさん
06/03/26 05:28:41 96nmrOTO
XSLT の処理結果ってどうやって確認してる?

IE5.x の頃だったかは
URLリンク(www.microsoft.com)
入れればバリデーションと結果のソース表示も出来たんだが、IE6 になって
から出来なくなったのかな?

421:nobodyさん
06/03/29 11:37:28 Bmnd//MP
<foo count="10" />

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

422:nobodyさん
06/03/29 18:54:30
>>421

「XSLT 再帰処理」でGoogle検索してみれ

423:nobodyさん
06/03/29 19:18:29 Bmnd//MP
すげぇ、ループを再起呼び出しでやるとは気づかなかったw

424:nobodyさん
06/03/29 23:46:49
こいつは関数型言語みたいなもんだから
むしろ再帰の方が自然なんだな

425:nobodyさん
06/03/30 08:26:06
>>423
他の方法で、できんことも無いけど、再帰が真っ当。
これを制せば、XSLTをほぼ手中に入れられる。

426:nobodyさん
06/03/32 21:43:59 rvS9DXBc
ファイルメーカーのアプローチってどう思う?
ウェブプログラミングにxsltって有効?

427:nobodyさん
06/04/02 01:48:27
ファイルメーカーが何やってるか知らんが
静的な部分は XSL で、動的な部分は XML で作れるならデータ転送量を
最小限に押さえられるので有効だと思う。サーバの負荷分散にもなるし。
ただ未対応ブラウザに対応するなら逆に高くなるかもしれん。

428:nobodyさん
06/04/03 20:37:14
拡張関数(?)のexsltで本日の日付を取得したいのですが
クライアントサイドの一般的なパーサは対応しているのでしょうか?
処理としては要素の日付と本日の日付を比較して過去の情報は隠すという動きをさせたいです。
exsltが無理ならスクリプトでやってみます。

429:nobodyさん
06/04/06 09:20:31
>>428
クライアントサイドの一般的なパーサって、どんなん?
IEやMozillaに付いてくような奴だったら駄目じゃね?

430:nobodyさん
06/04/06 20:40:45
>>429
それです。

431:nobodyさん
06/04/06 20:45:52
IE の XSL 対応って 5.0 からだっけ? Mozilla はどこから対応してんの?

432:nobodyさん
06/04/07 20:37:45
XML → HTML で © や   は XSL にどう記述したら良いの?

433:nobodyさん
06/04/07 20:38:28 ds66Zruv
ありゃ、&copy; や &nbsp; は、です。

434:nobodyさん
06/04/08 01:20:46
URLリンク(www.w3.org)
ここを見て、copyなら&#169;, nbspなら&#160;と書くのが単純。


435:nobodyさん
06/04/08 01:25:53
39

436:nobodyさん
06/04/09 17:43:31


437:nobodyさん
06/04/11 14:38:23
XML + XSL で XSL って作れる?
一般ユーザ用と管理者用で XSL を分けてたんだが、2~3 のパラメータと条件分岐だけで
統合できそうなのが分かってきた。ただ一般ユーザには管理者用の XSL を見せたくないし。

438:nobodyさん
06/04/11 20:50:36
XSLからXSLを出力するならxsl:namespace-aliasとかでぐぐると良いよ。


439:nobodyさん
06/04/19 04:15:41
ブラウザごとの XSL 対応状況の一覧とか載ってるサイトご存知でしたら教えてたも m(_ _)m

440:nobodyさん
06/04/19 19:35:12
一生懸命変換PGを作っていたのにWord2003で出来ちゃうのね。。。

441:nobodyさん
06/04/19 20:30:42
``PG''……

442:nobodyさん
06/04/21 07:18:54
Firefox 1.0.7 (Linux) で <xsl:value-of> の disable-output-escaping="no" が
利かないみたいなんですけど何か振替策ないでしょうか?

443:nobodyさん
06/04/21 07:52:16
すみません、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:nobodyさん
06/06/02 14:43:12 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: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:nobodyさん
06/06/02 15:00:49 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:xxxx@xxx.co.jp?subject=' + [行毎に定義されたメールテンプレ];
</script>


446:nobodyさん
06/06/06 05:01:30
$を文字列として使いたいんだけど、
どうすればいいの?

447:nobodyさん
06/06/06 19:27:27
<xsl:text>$</xsl:text>

<![CDATA$]]>

448:nobodyさん
06/06/06 19:27:57
間違ったーーー!!!

449:nobodyさん
06/06/06 20:29:03
>>447
これでうまくいきました。本当にありがとうございます。

450:nobodyさん
06/06/06 20:47:00
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:nobodyさん
06/06/06 21:24:43
<xsl:for-each select="aws:Argument[@Name != 'ItemPage']">

452:nobodyさん
06/06/06 21:25:20
自信ないから上手くいってもいかなくても教えてね

453:nobodyさん
06/06/07 00:01:38
>>451
ありがとうございます。
試してみた結果、ばっちり成功でした

454:nobodyさん
06/06/15 17:44:27 bh/U7SOR
XMLからXMLに変換したいんですけど、
XSLTに<xsl:output method='xml' encoding='SHIFT_JIS'/>
みたいな感じで書いているのに
出力されるXML宣言が<?xml version="1.0" encoding="UTF-16"?>
と出力されるのは何ででしょうか?

ちなみにXMLファイルの変換には
VS2005VC++でIXMLDOMDocumentPtrのtransformNode()を使用しています。

455:nobodyさん
06/07/10 11:50:48 AyMgINi+
えっと、XML 文書を XSL で HTML に変換し、
それに CSS を適用して見せるページを作っています。
意図するように見えているのですが、
Firefox がどのような HTML に変換しているのかを
確認したいと思っています。

Firefox で XSL による変換結果をファイルに
保存することってできますか?
つまり XSL 適用後の文書を保存したい、
Firefox を単に XSL プロセッサとして使いたいのです。

456:nobodyさん
06/07/11 17:58:57 Wcdm37qK
XML ファイルの先頭で XML プロセッサに対して XSL ファイルを指示しますよね?
<?xml-stylesheet title="XSL_formatting" type="text/xsl"
href="URLリンク(resource.example.com) ?>
XML プロセッサとして Firefox を利用すると、
XML ファイルをおいてある場所以外の XSL ファイルを
指定した場合に「Security Error」になります。
これはいかんともしがたいのでしょうか?

457:nobodyさん
06/07/11 18:20:50
Security Errorのあとにコロンがついてエラーの内容が書いてない?
セキュリティ上、別ドメインからのスクリプトの呼び出しはダメとかじゃなくて?

458:nobodyさん
06/07/11 18:24:23 Wcdm37qK
Security Error: Content at URLリンク(example.com)
may not load data from URLリンク(orz.2ch.net)

表示内容は上記の通りです。スクリプトと同じで他のドメイン
からの XSL ファイルは信用しないよってことですか。
全部ローカルにおいてたら Gecko でも IE でも処理
できるファイル群なので、ファイルの内容自体に誤りはないと思います。


459:nobodyさん
06/07/11 18:38:12
CheckSameOriginError, Security Error: Content at %S may not load data from %S. セキュリティエラー: %S のコンテンツが %S からデータを読み取ることは禁止されて います。

460:456=458
06/07/11 18:38:47 Wcdm37qK
IE だと URLリンク(example.com) を信頼済みサイトに
登録することで、他のサイトの XSL ファイルも
ダウンロードして処理してくれるようになりました。
Firefox ではそれに対応する設定を見つけられませんでした。
身内で共通の CSS とか XSL 使おうと思ってて
どうせ内容いじれるのが自分だけなんで一カ所に
集めちゃおうと思ったんですが、セキュリティの
こと考えたらなんか根本的に間違ってた気がするので
あきらめます。

461:nobodyさん
06/07/11 20:19:18 Wcdm37qK
ところで、 XPath による要素・属性の指定において、
「ルート直下の a または b という要素の下にある c という要素」
に関するテンプレートを書きたい時って、

/a/c に対するものと /b/c に対するものを別に
書く必要がありますか?まとめて /{a|b}/c のように記述
する方法はありませんでしょうか?


462:nobodyさん
06/07/11 20:46:36
a and b

463:nobodyさん
06/07/12 09:47:10 CjrVtdTv
<Arguments>

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

</Arguments>

xsl:value-of selectを使って、testの値だけ抜き出したいのですが、
どのように書けばいいんでしょうか?

464:nobodyさん
06/07/12 11:36:40
たまたま弄ってた所だから特別に教えてやる
Arguments/Argument[@Name='AssociateTag']/@Value
入門書くらい買え








ちがってたらゴメンネ

465:nobodyさん
06/07/13 16:00:41 Lxav0c83
>>464
どうもありがとうございます。
うまくいきました!

466:nobodyさん
06/07/13 17:27:49 Lxav0c83
document関数は外部のサイトも取得できるんでしょうか?

467:nobodyさん
06/07/13 18:25:06
やってみよう!
わからなかったら聞いてみよう!
わかったことはみんなに知らせよう!
いけ!

468:nobodyさん
06/07/14 20:02:42 BpYZj7V/
がんばって見た結果、たぶんできるっぽいです。

ところで

<xsl:for-each select="document('URLリンク(test.xml)')

見たいにurlを入力したとき、urlに=だとか&だとかが入っているとエラーが出てしまいます。
どうやって書けばいいんでしょうか?

469:nobodyさん
06/07/14 21:29:08 MY15XHq0
&は&だったかな。?だったかもしれない。
=はそのままでよかった気がする。

URLリンク(www.ne.jp)

470:nobodyさん
06/07/14 21:30:47
すまん、参照がともに変換されてしまったorz
示したURLのページをもとにがんばってくれ。

471:nobodyさん
06/07/14 23:47:41 BpYZj7V/
>>470
ありがとうございます

472:nobodyさん
06/07/22 10:37:07
xml文章の中から、ユーザー側から入力した条件を元に、
検索して結果を表示するようなことは、xslのみで実現するのは可能でしょうか?
postができなそうなのでやっぱり不可能でしょうか?

473:nobodyさん
06/07/23 00:28:31
xslのみ の意味がわからない


474:nobodyさん
06/07/23 00:29:42
>>472
CGIでやるなら、いまのところCGIからXSLTプロセッサを呼び出すしかない。


475:472
06/07/23 09:47:44
>>474
やっぱそうなりますよね。
xml文章中の特定の語句を検索して表示するような、
スクリプトが紹介されていたので、
postができれば検索システムも作れるそうだなと思った次第です。

>>473
xslって簡易プログラミング言語みたいなものだと思っていたので、
変な言い方だったらすみません。

476:nobodyさん
06/07/24 14:48:21 uSZzoH8+
文字列をエンコードする関数って
どんなのがありますか?

477:nobodyさん
06/07/25 01:05:04
postされたデータを使ってXSLTを作り変換すれば?
xsl:if の test 部分をpostされたデータにすれば出来そうな気がする

478:nobodyさん
06/08/02 19:55:15 qF5sPr3L
document関数でurlを指定するとき、xsl:variable nameはつかえないんでしょうか?

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

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

</xsl:for-each>

こんな感じで入力すると、$●●に○○.xmlが入らずに
$●●のままなんですが・・・

479:nobodyさん
06/08/02 20:13:17 qF5sPr3L
>>478
すいません自己解決しました。

480:nobodyさん
06/08/06 02:13:08
>>479
自己解決したら、解決法かけや

481:nobodyさん
06/08/17 06:59:21
すみません、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>


482:nobodyさん
06/08/17 15:51:08
<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="URLリンク(...")<)としておいてmatch="password"としてもだめ。

483:nobodyさん
06/08/18 18:36:22
>>482
お、出来た! W3C の <xsl:copy> のところに書いてありますね。意味が分からんかったのでスルーしてましたが。

484:nobodyさん
06/08/26 03:28:19
すみません、文字列の一括置換は XSL でどうやったら良いんでしょうか。
XML から JavaScript の文字列リテラルに変換するときにエスケープする必要があるのですが。

<foo>say "good morning"</foo>
 ↓
var msg = "say \"good morning\"";

485:nobodyさん
06/09/27 01:19:07
XSLT内で外部のJavaScriptファイルを読む宣言をするとIEでホワイトアウトするのですが。
諸事情により内部に直接JavaScriptを書きたくなくて。。
どうしたらよいのでしょうか?


486:nobodyさん
06/09/27 02:25:20
document関数はXMLしか読み込めないよ。Javascirptを読もうとするとエラーになるので多分それでホワイトアウトしてる。
<script src="(スクリプトのURL)"/>
みたいな要素を出力した方がよいかと。

#エスパーレベル低いので外してるかな?

487:485
06/09/27 09:27:24
分かりにくい書き方してすんません。
で、ご指摘の方法でやっていたんですがうまくいきません。
むしろJavaScriptソースを直接書けば動きます。
Firefoxならどっちでもちゃんと動くんですけど。。

もう少し詳しく状況を説明しておくと
・JavaでXSL変換を行っている
・変換後データはStringとして吐き出される
・それをそのままサーブレットのPrintWriterを使って表示
してます。


488:nobodyさん
06/09/29 01:06:23
>487
<script src="(スクリプトのURL)"/> でリンクしたJSファイルと
PrintWriterが吐くページのエンコーディングが合ってないとかか?

489:nobodyさん
06/10/03 16:26:40
>487
文字コードはすべてUTF-8で統一してあります。
さらに、response.setChar~でUTF-8を設定してあるので完璧。。だと思います。

javascriptのソース次第でなんとなりそうな気もしてきたのでとりあえずそっちで試行錯誤してみます。

490:nobodyさん
06/10/26 13:25:08 5D6Zlz9T
変鉄もないxmlファイルのルート以下のタグ名をmethodはhtmlで表示させるだけのxsltがなにも表示されません。
環境のせいだと思うのですがIE5で動作しますか?
起動時は拡張子xslのファイルをダブルクリックするだけです。
事情により環境をいじれないので確認させてください。
よろしくおねがいします

491:nobodyさん
06/10/26 18:28:24 Ni4Tuu8+
ウンコ

492:nobodyさん
06/10/26 18:34:48
元となるXMLにXSLTを<?xml-stylesheet ...?>で関連付けて、そっちを開けばOK。


493:nobodyさん
06/10/26 18:38:30 5D6Zlz9T
492
記述が漏れていてごめんなさい。
手順はそのようにしています。

494:nobodyさん
06/10/30 11:26:45
XML+XSLTのformからPostされたページをリロードすると、
データの再送信が行われないんだけど、
これってXSLで再送信するように変更することはできる?

495:nobodyさん
06/11/18 20:13:39
ブラウザの仕様のような気がする。

496:nobodyさん
06/11/19 06:15:00
JavaScript のリテラル部分に値を埋め込みたいんだけど、" → \" とかの変換て XSL でどうやるの?

497:nobodyさん
07/01/25 13:51:41
テンプレートの呼び出しについてですが、
呼び出されたテンプレートで、呼び出し元の要素名を使いたいです。
どのようにすればいいですか?

498:nobodyさん
07/01/25 14:20:29 GKXwIW4P
俺もテンプレートで聞きたいことが。
例えば

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

っていうXMLがあったとして、
「フルーツ。」の部分にテンプレート適用したいんだが、
XPathとかで指定できないの?

499:nobodyさん
07/01/26 01:44:49
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
07/01/26 06:55:42 BzbrIFkB
>>499
どうも!できた

501:nobodyさん
07/02/14 12:09:05
>>455
半年以上経っているが…

Firefoxでページほぼ全てを選択(全部はダメ)→
右クリックから「選択した部分のソースを表示」
これで行ける。

502:nobodyさん
07/02/14 14:32:44
半年経ってりゃVerもあがるわな

503:nobodyさん
07/03/15 02:01:11 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)の問題なのでしょうか?
そうなのであれば、レスポンスを向上させる手段としてどういった方法が一般的なのでしょうか?
何かご存知の方、いらっしゃいましたら助言いただきたいです。
よろしくお願いします。


504:nobodyさん
07/03/15 02:18:33
XMLのサイズ小さくしてみたらどうなる?

505:503
07/03/15 02:32:34 Qxvsm42D
XSLT入門ページにあるような簡単なXMLで試してみましたが、結果は同じでした。


506:nobodyさん
07/03/30 22:01:54
>503
IEにXMLの変換をやらせるんじゃなくて、サーバ側で変換した結果をクライアントにかえしたら?

507:nobodyさん
07/03/31 11:26:38 jJ1h8S+F
XSLT2.0/XPATH2.0が勧告されているんだが...

興味無いか...○| ̄|_

508:nobodyさん
07/04/03 01:44:44
具体的に何が変わったのかは気になる

509:nobodyさん
07/04/05 19:40:38
力いっぱい亀レスしてみる。

>>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>

510:nobodyさん
08/03/05 06:00:45 d95zJRJ0
SourceForge.net: PHP - XML_XSLT2Processor
URLリンク(sourceforge.net)
JavaのXSLT2.0プロセッサ(SaxonとAltovaXML)をPHPで使えるようにするためのクラスらしい

URLリンク(xiss.g.hatena.ne.jp) 経由


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch