トップページ⇒php
547コメント219KB

XSL/XSLT

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/09/05 10:49ID:dYMWGvtU
語ろう。ていうか教えて。
0516nobodyさん2008/04/19(土) 01:12:06ID:???
A4.
お前が好きだ
0517nobodyさん2008/04/20(日) 18:54:06ID:???
つまんね
0518nobodyさん2008/06/11(水) 03:05:25ID:???
xalanを実行するときに元のXML文書に文書型宣言が含まれていると、xalanが
validationを行いDTDを毎回ダウンロードしてしまうのですが、これを止める
ことはできないでしょうか。xalanはjava版でバージョンは2.7.0-5です。
0519nobodyさん2008/06/21(土) 10:42:11ID:k45WphEu
XSL-FOのテーブルで

<fo:table>
 <fo:table-row>
  <fo:table-cell><fo:block>(短いテキスト)</fo:block></fo:table-cell>
  <fo:table-cell number-rows-spanned="2"><fo:block>(すごく長いテキスト)</fo:block></fo:table-cell>
 </fo:table-row>
 <fo:table-row>
  <fo:table-cell><fo:block>(短いテキスト)</fo:block></fo:table-cell>
 </fo:table-row>
</fo:table>

これをレンダリングするとセルの大きさが
-------------------------
|********|**************|
|--------|**************|
|****  |**************|
|    |**************|
|    |************ |
|    |       |
-------------------------
このようになってしまいますが、左の列の高さを均等にする方法内でしょうか
事前に計算しろという選択肢は無しで
0520nobodyさん2008/06/21(土) 10:43:16ID:???
だいぶずれてしまいましたねorz
0521nobodyさん2008/06/21(土) 23:22:26ID:Cd2mCbay
XMLファイルAの中の要素1に入っている、
「〜〜.html%3FA」
というURLを
xslで、
<xsl:value-of select="要素1"/>
と指定して変換したXMLを見ると、%3FAの部分が「?」に
なってしまって、リンクできないんですけど、対処法
ご存知の方居ませんかね?
0522nobodyさん2008/06/21(土) 23:41:49ID:Cd2mCbay
521ですが、どうも勘違いしていたようで。。。
<xsl:value-of select="要素1"/> の指定でも出力されたXML自体は
のソースちゃんと%3FAになってました。

%3FAを エンコード済みの?と解釈してしまっている側の問題ですね、
本質的には。
ただ、ブラウザを弄るのは現実的ではないので、何とかxsl側で対処
出来ないでしょうか。
0523nobodyさん2008/06/21(土) 23:53:44ID:???
お騒がせしてすみません。
出力されたXMLをhtmlにもう一回変換して
ブラウザから見たらちゃんとしたURLへの
リンクに成ってました。
RSS出力してた時はリンクが上手く飛ばなかった
んですが、同じ<a〜〜>のタグでも、ブラウザは
RSSとHTMLで違う解釈するんですね、、、
0524nobodyさん2008/08/23(土) 12:22:35ID:???
相変わらずの過疎スレ
需要ないのかなあ
0525nobodyさん2008/08/24(日) 23:33:07ID:???
使い方によっては面白いんで適当に使い始めたけど
PHPだと言語側の対応がイマイチで使いづらいんだ。
0526nobodyさん2008/08/25(月) 09:55:30ID:???
「なにがなんでもXML」みたいな風潮じゃなくなったのもあるかな
0527nobodyさん2008/10/31(金) 11:22:13ID:???
XSLTバイブルだれか譲ってくれませんか?

0528nobodyさん2009/02/13(金) 15:22:35ID:X83R2PAW
for-each使って、指定したノードが存在する回数分、テキストを配置していくプログラムが作りたいです。
fo:block-containerで直接的に画面内での座標指定をしているため、その時の周回の回数から座標をY方向に計算してズラしながら配置していきたいです。

CやJavaでは、forの構文では、この中でiを見ればいま何週目か?を参照できます。
for(int i=0;i<回数;i++){
〜処理〜
}

が、
XSLTのfor-each文(もしくはその他)で、これと同じように、内部から「現在何回目か」を見る方法ってありますか?
xsl:variableでは変数なのに代入はできないそうで困ってます。
0529nobodyさん2009/02/13(金) 15:31:04ID:???
>>528
ループの中で何番目か調べるのはposition()

<xsl:for-each select="/parent/child">
<xsl:value-of select="position()" />番目のノードです
</xsl:for-each>
ただし最初が0でなく1なので要注意
0530nobodyさん2009/02/13(金) 16:09:55ID:X83R2PAW
>>529

ありがとうございます。
ループに関しては思ったとおりのことができました。

XSLTでは、再代入できる変数のようなものを使うことは不可能ですか?
ループ以外でも、XSLT内で計算するために、蓄積的に数値を足していける変数を使いたいのですが。
0531nobodyさん2009/02/13(金) 18:12:20ID:???
そういうのはcall-templateのパラメータを使う
0532nobodyさん2009/02/18(水) 16:06:36ID:/wQ0UVxh
XSL:FOの構文で、HTMLで言うところの<hr>に相当するタグってありますか?
0533nobodyさん2009/04/17(金) 04:58:20ID:???
自宅サーバ用に XSLT サーブレット作ったんで良かったら使ってください。
sourceforge.jp でソース公開してます。
http://www.koiroha.org/kwt/xsl/index.xhtml
0534nobodyさん2010/01/11(月) 13:37:58ID:x+0DsgF/
保守
0535nobodyさん2010/01/14(木) 11:50:46ID:???
良スレ上げ (∩´∀`)∩
0536nobodyさん2010/08/26(木) 10:38:32ID:CJC7O04v
<良スレ:age />

既に前レスから半年、ここ、まだ誰かいるかなぁ

XSLTで、例えば元データにaltタグが無ければ変換をエラーにするといったことは出来るのでしょうか?
簡易html-lintとして使えると嬉しいっす
0537nobodyさん2010/08/26(木) 13:46:34ID:???
そういうのはXMLバリデータの仕事なんじゃ
0538nobodyさん2012/02/29(水) 07:12:13.10ID:???
質問です。

�@のような構造のXMLがあり、
�@に従うデータが�Aのような形できます。
�Aにおいて、Aは親で、BはAの子、
CはBの子となっており、�Bのような形に変換したいです。

このときxsltではどのようにかけばよろしいでしょうか?

�@�A�Bのイメージは次レスで書きます。
0539nobodyさん2012/02/29(水) 07:12:37.26ID:???
-----------�@----------
<choice>
 <element type="A">
 <element type="B">
 <element type="C">
<choice>
-----------�A-----------
<A>
<B>
<C>
<C>
<B>
<B>
<C>
-----------�B-----------

<A>
 <B>
  <C></C>
  <C></C>
 </B>
 <B></B>
 <B>
  <C></C>
 </B>
</A>
0540nobodyさん2012/03/04(日) 02:16:44.31ID:???
いまいち何がやりたいんだかよく分からないけど
XMLじゃないデータ (2) をXMLであるデータ (3) に変換したいってこと?
だったらそれはXSLTの仕事ではない
0541nobodyさん2012/09/13(木) 16:58:26.02ID:2LiGXsgg
xmlのツリーに、いくつものbookDescriptionがあります。
<table>
<bookDescription>
<bookCode>
<price>100<price>
</bookCode>
  <title>X</title>
〜〜〜
</bookDescription>
</table>
な感じで、bookDescriptionをpriceでascendingで表示したいと思います。
xsltで<xsl:sort select="bookCode/price" order="ascending"/>を入れるとエラーが出でしまいます。

0542nobodyさん2012/09/13(木) 16:59:36.50ID:2LiGXsgg
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<xsl:apply-templates />
</html>
</xsl:template>

<xsl:template match="table">
<body>
<h2>Test</h2>
<xsl:apply-templates/>
</body>
</xsl:template>


<xsl:template match="bookDescription">
<!--<xsl:sort select="bookCode/price" order="ascending"/>-->
</xsl:template>

<xsl:template match="bookDescription">
<table border="1">
<tr>
<td><xsl:value-of select="bookCode"/></td>
<td><xsl:value-of select="title"/></td>
</tr>

</table>
<br />
</xsl:template>
</xsl:stylesheet>
どうすればいいのでしょうか?
0543nobodyさん2012/09/14(金) 01:56:17.60ID:???
にーとがひまつぶしに実験したので間違えてる可能性大ですが
こう書くとエラー無くそれらしく表示されました
<xsl:template match="table">
<body>
<h2>Test</h2>
<xsl:apply-templates>
<xsl:sort select="bookCode/price" order="ascending"/>
</xsl:apply-templates>
</body>
</xsl:template>
0544nobodyさん2012/09/14(金) 06:24:33.02ID:B4mrueCy
>>543
無事できました。
ありがとうございます。
0545nobodyさん2014/01/15(水) 12:22:25.95ID:???
XSL/XSLT
0546nobodyさん2014/01/22(水) 10:21:56.60ID:???
XSL
0547nobodyさん2014/06/29(日) 13:39:21.42ID:dCDFM+DD
◎2chスレッド勢いランキングサイトリスト◎

★+ニュース板
・ 2NN (推薦)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推薦)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推薦)
・ READ2CH
・ i-ikioi

※ 要タイトル名検索
※ 2chブラウザ併用推奨
■ このスレッドは過去ログ倉庫に格納されています