XSL/XSLT
1名無しさん@お腹いっぱい。
01/09/05 10:49ID:dYMWGvtU 語ろう。ていうか教えて。
163教えて下さい
02/11/13 17:52ID:fcqFiIq0 xslの全ての<xsl:value-of select=....>の項目に、
「disable-output-escaping="yes"」を指定したいのですが、
まとめて設定するにはどのようにしたらよいのでしょうか?
「disable-output-escaping="yes"」を指定したいのですが、
まとめて設定するにはどのようにしたらよいのでしょうか?
164nobodyさん
02/11/15 22:35ID:Q0ofQCcS disable-output-escaping="yes" を <xsl:value-of に追加する
XSLT を書いて XSLT を変換...
XSLT を書いて XSLT を変換...
165nobodyさん
02/11/15 23:27ID:y2tgiCuR エディタで一括変換
166nobodyさん
02/12/09 01:32ID:eA2V6vYL すごい単純な質問なんですけど、
<a>
<xsl:attribute name="href">
<xsl:value-of select="@url" />
</xsl:attribute>
<xsl:attribute name="target">
_self
</xsl:attribute>
<xsl:value-of select="@url" />
</a>
とXSLでリンクを作ったんですが、targetを _self にしても、_blank みたいに別ウィンドウでリンク先が表示されてしまいます。
_self や _top のように別ウィンドウを開かないでリンク先を表示させるにはどうすればいいのでしょうか?
<a>
<xsl:attribute name="href">
<xsl:value-of select="@url" />
</xsl:attribute>
<xsl:attribute name="target">
_self
</xsl:attribute>
<xsl:value-of select="@url" />
</a>
とXSLでリンクを作ったんですが、targetを _self にしても、_blank みたいに別ウィンドウでリンク先が表示されてしまいます。
_self や _top のように別ウィンドウを開かないでリンク先を表示させるにはどうすればいいのでしょうか?
167166
02/12/09 01:51ID:??? 自己レスです。
<xsl:attribute name="target">_self</xsl:attribute>
と繋げればうまくいきました。どうも間にリターンがあったのが原因みたいです。
<xsl:attribute name="target">_self</xsl:attribute>
と繋げればうまくいきました。どうも間にリターンがあったのが原因みたいです。
168nobodyさん
03/01/06 07:36ID:??? DTDで
<!ENTITY foo SYSTEM "bar.xml">
を XML schema で表現するにはどうすればいいんですか?
<!ENTITY foo SYSTEM "bar.xml">
を XML schema で表現するにはどうすればいいんですか?
169nobodyさん
03/01/06 07:44ID:L2+zJcVG しまった、ageておこう
170山崎渉
03/01/15 13:36ID:??? (^^)
171nobodyさん
03/01/22 05:21ID:vujRJlnb i love love generation
172ぱむ
03/01/28 17:32ID:IBfGocF/ cocoonのsitemap.xmapで2つ以上のxmlを1つのxslに適用したい場合は
どうすればいいんですか?
<map:generate src="aaa.xml"/>
<map:generate src="bbb.xml"/>
<map:transform src="ccc.xsl"/>
とすると「適用出来るxmlは1つだけ」というエラーが出てしまいます。
だれか宜しくお願いします。
どうすればいいんですか?
<map:generate src="aaa.xml"/>
<map:generate src="bbb.xml"/>
<map:transform src="ccc.xsl"/>
とすると「適用出来るxmlは1つだけ」というエラーが出てしまいます。
だれか宜しくお願いします。
173nobodyさん
03/01/29 13:27ID:L9yee78Z xmlは死んだ
174nobodyさん
03/02/11 22:52ID:K0N8t3Ee xmlは死んだ
175nobodyさん
03/02/12 17:42ID:rtj1FkeB MS、XDocsの正式名称「InfoPath」発表
http://www.zdnet.co.jp/news/0302/12/nebt_21.html
MicrosoftはInfoPathで作成したフォームを使い
医療電子データ交換用形式で送るデモも実施。
同社はXFormsではなくXSLTの採用を決定
http://www.zdnet.co.jp/news/0302/12/nebt_21.html
MicrosoftはInfoPathで作成したフォームを使い
医療電子データ交換用形式で送るデモも実施。
同社はXFormsではなくXSLTの採用を決定
176nobodyさん
03/02/12 17:56ID:gzTJY/OJ177nobodyさん
03/02/20 19:11ID:ywFHezDA 名前空間接頭辞 foo と bar を使った xml 文書があります.
----------
<foo:root xmlns:foo="http://foo-namespace" xmlns:bar="http://bar-namespace">
<bar:e1>this is <foo:e2>a</foo:e2> pen. </bar:e1>
</foo:root>
----------
これを以下の xslt に食わせて,
foo に属する要素を全て bar の要素に変換します.
----------
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:foo="http://foo-namespace" xmlns:bar="http://bar-namespace" version="1.0">
<xsl:output indent="yes" omit-xml-declaration="yes" />
<xsl:template match="foo:root"><bar:root><xsl:apply-templates select="*" /></bar:root></xsl:template>
<xsl:template match="foo:e2"><bar:e2><xsl:value-of select="." /></bar:e2></xsl:template>
<xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy></xsl:template>
</xsl:stylesheet>
----------
すると,以下のような xml 文書 (多少整形してあります) が得られるのですが,
----------
<bar:root xmlns:bar="http://bar-namespace" xmlns:foo="http://foo-namespace">
<bar:e1>this is <bar:e2>a</bar:e2> pen.</bar:e1>
</bar:root>
----------
結果として全く使われていない foo に対する宣言が文書に含まれてしまいます.
exclude-result-prefixes="foo" を指定しても,bar:e1 要素に宣言が現れるだけで意味がありませんでした.
これを取り除く (最適化?) することはできないのでしょうか.
いや,実害はないんですけど気持ち悪くて...
----------
<foo:root xmlns:foo="http://foo-namespace" xmlns:bar="http://bar-namespace">
<bar:e1>this is <foo:e2>a</foo:e2> pen. </bar:e1>
</foo:root>
----------
これを以下の xslt に食わせて,
foo に属する要素を全て bar の要素に変換します.
----------
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:foo="http://foo-namespace" xmlns:bar="http://bar-namespace" version="1.0">
<xsl:output indent="yes" omit-xml-declaration="yes" />
<xsl:template match="foo:root"><bar:root><xsl:apply-templates select="*" /></bar:root></xsl:template>
<xsl:template match="foo:e2"><bar:e2><xsl:value-of select="." /></bar:e2></xsl:template>
<xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy></xsl:template>
</xsl:stylesheet>
----------
すると,以下のような xml 文書 (多少整形してあります) が得られるのですが,
----------
<bar:root xmlns:bar="http://bar-namespace" xmlns:foo="http://foo-namespace">
<bar:e1>this is <bar:e2>a</bar:e2> pen.</bar:e1>
</bar:root>
----------
結果として全く使われていない foo に対する宣言が文書に含まれてしまいます.
exclude-result-prefixes="foo" を指定しても,bar:e1 要素に宣言が現れるだけで意味がありませんでした.
これを取り除く (最適化?) することはできないのでしょうか.
いや,実害はないんですけど気持ち悪くて...
178177
03/02/20 19:13ID:??? 書き込むときに「改行が多い!!」って怒られちゃったので
改行削ったらソースが読みづらくなってしまいました……スマンコ
改行削ったらソースが読みづらくなってしまいました……スマンコ
180177
03/02/21 10:10ID:???182177
03/02/23 21:47ID:ORn8WdNQ183山崎渉
03/03/13 17:11ID:??? (^^)
184nobodyさん
03/04/02 23:28ID:??? ほすさげ
185nobodyさん
03/04/07 01:23ID:??? (MS)XSL+JavaScriptで入力フォーム(UI)を作るという方法論は間違いだったと激しく後悔中。
素直に全部JavaScriptにするか、サーバサイドで作るべきだダタヨ。
素直に全部JavaScriptにするか、サーバサイドで作るべきだダタヨ。
186nobodyさん
03/04/07 01:46ID:uo8jDP5o ん。XForm ではなくて、XSLで?
187山崎渉
03/04/17 12:08ID:??? (^^)
188nobodyさん
03/04/19 11:48ID:4Vo7Hobj あの・・・XSLTってタグ自身を出力できない?
下の様にすると全タグについて定義しなくてはならなくなってしまう・・
<xsl:template match="ABCD">
<ABCD>
<xsl:apply-template/>
</ABCD>
</xsl:template>
やりたいことは
xmlの一部のタグだけ変換したいのですが
それ以外はそのままのタグで出力したいのです
copy-of とか使うと編集できないし。。。
すごくくだらない質問ですみませんが教えていただけないでしょうか?
下の様にすると全タグについて定義しなくてはならなくなってしまう・・
<xsl:template match="ABCD">
<ABCD>
<xsl:apply-template/>
</ABCD>
</xsl:template>
やりたいことは
xmlの一部のタグだけ変換したいのですが
それ以外はそのままのタグで出力したいのです
copy-of とか使うと編集できないし。。。
すごくくだらない質問ですみませんが教えていただけないでしょうか?
189nobodyさん
03/04/20 04:35ID:??? >>188
<xsl:template match="ABCD">
<xsl:element name="{local-name()}">
<xsl:apply-template/>
</xsl:element>
</xsl:template>
ABCD をワイルドカードにすると全部引っかかる。
<xsl:template match="ABCD">
<xsl:element name="{local-name()}">
<xsl:apply-template/>
</xsl:element>
</xsl:template>
ABCD をワイルドカードにすると全部引っかかる。
190山崎渉
03/04/20 06:00ID:??? ∧_∧
( ^^ )< ぬるぽ(^^)
( ^^ )< ぬるぽ(^^)
191nobodyさん
03/05/19 12:22ID:UmHfFrg2 いい書籍ない?
オライリーのはわかりにくい。
オライリーのはわかりにくい。
192山崎渉
03/05/22 02:00ID:??? ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
193山崎渉
03/05/28 17:20ID:??? ∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
194山崎 渉
03/07/15 11:14ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
195山崎 渉
03/08/02 02:37ID:??? ∧_∧
( ^^ )< ぬるぽ(^^)
( ^^ )< ぬるぽ(^^)
196ぼるじょあ ◆ySd1dMH5Gk
03/08/02 05:19ID:??? ∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
197山崎 渉
03/08/15 22:59ID:??? (⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
198nobodyさん
03/09/07 21:17ID:PQrT+UlA <x>a b c <y>d</y> e <y>f</y> <y>g</y> h</x>
を
<p>a b c <q>d</q> e <q>f</q> <q>g</q> h</p>
に変換する XSL が分からん。for-each じゃ出来ないよね?
を
<p>a b c <q>d</q> e <q>f</q> <q>g</q> h</p>
に変換する XSL が分からん。for-each じゃ出来ないよね?
199nobodyさん
03/09/07 23:33ID:X8dU+/Y3 xにマッチしてpにおきかえるテンプレートと
yにマッチしてqにおきかえるテンプレートをかけばいいだけじゃんよ
yにマッチしてqにおきかえるテンプレートをかけばいいだけじゃんよ
201nobodyさん
03/09/26 10:15ID:Hq0iAR6d <date>9月2日</date>
<title>ちょっとここを通られた</title>
<p>なぞの白い物体に我が家をあらされてしまった。</p>
<p>訴訟を起こして謝罪と賠償を要求したい。</p>
を
<div class="section">
<h2><date>9月2日</h2>
<div class="subsection">
<h3>ちょっとここを通られた</h3>
<p>なぞの白い物体に我が家をあらされてしまった。</p>
<p>訴訟を起こして謝罪と賠償を要求したい。</p>
</div>
</div>
と変換するにはXSLTをどう書けばいいのでしょうか。
<title>ちょっとここを通られた</title>
<p>なぞの白い物体に我が家をあらされてしまった。</p>
<p>訴訟を起こして謝罪と賠償を要求したい。</p>
を
<div class="section">
<h2><date>9月2日</h2>
<div class="subsection">
<h3>ちょっとここを通られた</h3>
<p>なぞの白い物体に我が家をあらされてしまった。</p>
<p>訴訟を起こして謝罪と賠償を要求したい。</p>
</div>
</div>
と変換するにはXSLTをどう書けばいいのでしょうか。
204nobodyさん
03/09/26 22:18ID:??? >>203
整形式にしなきゃいけないのは変換前のほうなんだが。
本当にやりたいことは別にあるんじゃないかとも思うが、
とりあえず、親要素を???とすれば、こんな感じ。
<xsl:template match="???">
<div class="section">
<xsl:apply-templates select="date" />
<div class="subsection">
<xsl:apply-templates select="title" />
<xsl:apply-templates select="p" />
</div>
</div>
</xsl:template>
<xsl:template match="date"><h2><xsl:xsl:apply-templates /></h2></xsl:template>
<xsl:template match="title"><h3><xsl:xsl:apply-templates /></h3></xsl:template>
<xsl:template match="p"><p><xsl:xsl:apply-templates /></p></xsl:template>
整形式にしなきゃいけないのは変換前のほうなんだが。
本当にやりたいことは別にあるんじゃないかとも思うが、
とりあえず、親要素を???とすれば、こんな感じ。
<xsl:template match="???">
<div class="section">
<xsl:apply-templates select="date" />
<div class="subsection">
<xsl:apply-templates select="title" />
<xsl:apply-templates select="p" />
</div>
</div>
</xsl:template>
<xsl:template match="date"><h2><xsl:xsl:apply-templates /></h2></xsl:template>
<xsl:template match="title"><h3><xsl:xsl:apply-templates /></h3></xsl:template>
<xsl:template match="p"><p><xsl:xsl:apply-templates /></p></xsl:template>
205nobodyさん
03/10/10 20:26ID:??? 俺はサイトの文法は
<section>
<title>TITLE</title>
<sentences><p></p>....</sentences>
<section>
<title>子セクションTITLE</title>
<sentences><p></p>....</sentences>
</section>
<section>
<title>子セクションTITLE</title>(以下略&再帰的な文法)
</section>
</section>
にしてる。
<section>
<title>TITLE</title>
<sentences><p></p>....</sentences>
<section>
<title>子セクションTITLE</title>
<sentences><p></p>....</sentences>
</section>
<section>
<title>子セクションTITLE</title>(以下略&再帰的な文法)
</section>
</section>
にしてる。
207nobodyさん
03/10/17 21:05ID:ckGd54O2 質問です。
XSLTで、元の構造を保ったまま、
XMLのテキストを一部分だけ変えるというのは簡単に出来るのでしょうか?
例えば、簡単な例ですが、
<A>
<B>hoge</B>
</A>
とあったときにhogeを何か別の文字列に変換したいという事です。
やはりその構造にあった、スタイルシートを書くしかないのでしょうか?
XSLTで、元の構造を保ったまま、
XMLのテキストを一部分だけ変えるというのは簡単に出来るのでしょうか?
例えば、簡単な例ですが、
<A>
<B>hoge</B>
</A>
とあったときにhogeを何か別の文字列に変換したいという事です。
やはりその構造にあった、スタイルシートを書くしかないのでしょうか?
211nobodyさん
03/10/19 17:43ID:??? XMLをXSLでHTMLに変換して、↓のような感じにしたいです。
何がしたいのかというとページ内リンクがしたくて、
c要素を変換した(1*)や(*2)などを押すと、
f要素の(*1)や(*2)に飛びたいのです。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="sample.xsl" type="text/XSL"?>
<A>
<b>テキスト1<c id="A" /></b>
<b>テキスト2<c id="B" /></b>
<b>テキスト3<c id="A" /></b>
<b>テキスト4<c id="A" /></b>
<e>
<f id="A">参照テキスト</f>
<f id="B">参照テキスト</f>
</e>
</a>
↓変換↓
テキスト1(*1)
テキスト2(*2)
テキスト3(*1)
テキスト4(*1)
(*1)参照テキスト
(*2)参照テキスト
何がしたいのかというとページ内リンクがしたくて、
c要素を変換した(1*)や(*2)などを押すと、
f要素の(*1)や(*2)に飛びたいのです。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="sample.xsl" type="text/XSL"?>
<A>
<b>テキスト1<c id="A" /></b>
<b>テキスト2<c id="B" /></b>
<b>テキスト3<c id="A" /></b>
<b>テキスト4<c id="A" /></b>
<e>
<f id="A">参照テキスト</f>
<f id="B">参照テキスト</f>
</e>
</a>
↓変換↓
テキスト1(*1)
テキスト2(*2)
テキスト3(*1)
テキスト4(*1)
(*1)参照テキスト
(*2)参照テキスト
212211の続き
03/10/19 17:44ID:???ページ内リンク自体は簡単にできるのですが、
(*1)、(*2)などの番号を振るのが難しいです。
f要素の番号は単純にnumberでカウントしているのですが、
c要素での番号が振れません。
xslはネットをうろついて見つけた近そうなものを
参考にしながら、こんな感じになっています。
↓
213212の続き
03/10/19 17:48ID:??? <?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0" encoding="Shift_JIS" />
<xsl:template match="/">
<html><head><title>sample</title></head><body>
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="b">
<div><xsl:apply-templates /></div>
</xsl:template>
<xsl:template match="c">
<xsl:variable name="ID" select="@id" />
<xsl:element name="a">
<xsl:attribute name="href">#<xsl:value-of select="@id" /></xsl:attribute>
(*<xsl:number count="f" /><xsl:value-of select="../../e/f/@id[../@id=$ID]" />)
</xsl:element>
<xsl:apply-templates />
</xsl:template>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0" encoding="Shift_JIS" />
<xsl:template match="/">
<html><head><title>sample</title></head><body>
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="b">
<div><xsl:apply-templates /></div>
</xsl:template>
<xsl:template match="c">
<xsl:variable name="ID" select="@id" />
<xsl:element name="a">
<xsl:attribute name="href">#<xsl:value-of select="@id" /></xsl:attribute>
(*<xsl:number count="f" /><xsl:value-of select="../../e/f/@id[../@id=$ID]" />)
</xsl:element>
<xsl:apply-templates />
</xsl:template>
214213の続き
03/10/19 17:49ID:??? <xsl:template match="f">
<div>
<xsl:element name="a">
<xsl:attribute name="name"><xsl:value-of select="@id" /></xsl:attribute>
(*<xsl:number count="f" />)
</xsl:element>
<xsl:apply-templates />
</div>
</xsl:template>
</xsl:stylesheet>
f要素にマッチングさせたnumberをとかを取得できればいいのかなーと思って、
いろいろと考えてみたのですが、↑まで書いたところで???になりました。
どなたかお知恵を貸してください。。。。
<div>
<xsl:element name="a">
<xsl:attribute name="name"><xsl:value-of select="@id" /></xsl:attribute>
(*<xsl:number count="f" />)
</xsl:element>
<xsl:apply-templates />
</div>
</xsl:template>
</xsl:stylesheet>
f要素にマッチングさせたnumberをとかを取得できればいいのかなーと思って、
いろいろと考えてみたのですが、↑まで書いたところで???になりました。
どなたかお知恵を貸してください。。。。
215nobodyさん
03/11/29 01:53ID:0RUQwDGu どうか皆様のお力をお借りしたく思います。
xmlが
<item>
<text>
ああああああああああ
ああああああああああ
ああああああああああ
</text>
<text>
いいいいい<em>イイイイイ</em> <br />
いいいいいいいいいい <br />
いいいいいいいいいい <br />
</text>
</item>
このように与えられていて、これを
<!-- タグ付きで、そのまま出力 -->
<p>
ああああああああああ
ああああああああああ
ああああああああああ
</p>
<p>
いいいいい<em>イイイイイ</em> <br />
いいいいいいいいいい <br />
いいいいいいいいいい <br />
</p>
<!-- タグを削って 32bytes に切り詰め、最後の 3bytes を '...' に変換し、出力 -->
<p>ああああああああああああああ ...</p>
<p>いいいいいイイイイイいいいい ...</p>
このように出力したいのですが、xslはどのように書けばよいのでしょうか。
xmlが
<item>
<text>
ああああああああああ
ああああああああああ
ああああああああああ
</text>
<text>
いいいいい<em>イイイイイ</em> <br />
いいいいいいいいいい <br />
いいいいいいいいいい <br />
</text>
</item>
このように与えられていて、これを
<!-- タグ付きで、そのまま出力 -->
<p>
ああああああああああ
ああああああああああ
ああああああああああ
</p>
<p>
いいいいい<em>イイイイイ</em> <br />
いいいいいいいいいい <br />
いいいいいいいいいい <br />
</p>
<!-- タグを削って 32bytes に切り詰め、最後の 3bytes を '...' に変換し、出力 -->
<p>ああああああああああああああ ...</p>
<p>いいいいいイイイイイいいいい ...</p>
このように出力したいのですが、xslはどのように書けばよいのでしょうか。
216215
03/11/30 02:13ID:??? 「タグ付きで、そのまま出力」 は xsl:copy-of を使用して解決しました。
「タグを削って 32bytes に切り詰め、最後の 3bytes を '...' に変換し、出力」 は未解決です。
どなたか御協力を賜りたく思います。
「タグを削って 32bytes に切り詰め、最後の 3bytes を '...' に変換し、出力」 は未解決です。
どなたか御協力を賜りたく思います。
217nobodyさん
03/11/30 02:59ID:??? 仕様書読んだことある?
プログラミング言語の経験は?
プログラミング言語の経験は?
218215
03/11/30 05:20ID:??? 「タグを削って 32bytes に切り詰め、最後の 3bytes を '...' に変換し、出力」 も自己解決しました。
お騒がせして御免なさい。
>217
>仕様書
少しは読みますが、リファレンス的です。
>プログラミング言語
c/c++ を使う事が出来ます。
お騒がせして御免なさい。
>217
>仕様書
少しは読みますが、リファレンス的です。
>プログラミング言語
c/c++ を使う事が出来ます。
219nobodyさん
04/01/02 03:53ID:goN3d3Pm XSLTで1つのXMLファイル上に存在するn件のデータを50件ずつ表示を
行いたいんだけど、そういうことって簡単にできますか?
どんな感じで実装すれば良いのかご存知の方教えてください。
javascriptでXSLTを触らないとダメなのかな・・。
行いたいんだけど、そういうことって簡単にできますか?
どんな感じで実装すれば良いのかご存知の方教えてください。
javascriptでXSLTを触らないとダメなのかな・・。
220nobodyさん
04/01/02 13:08ID:???221nobodyさん
04/01/02 14:59ID:goN3d3Pm223nobodyさん
04/01/02 16:08ID:goN3d3Pm >>222
え・・そうなんすか。
ホントXML全然知らないんで、とんちんかんなレスになっちゃうかも
しれないけど、XSLTってユーザーの入力値にマッチした情報の抽出を行うとか、
そういう制御は得意かと思っていたんですが違うんですか?
それはサーバサイドでやるべき事っていうことですか。
根本的なところを理解していなかったか・・_| ̄|〇ガックリ
え・・そうなんすか。
ホントXML全然知らないんで、とんちんかんなレスになっちゃうかも
しれないけど、XSLTってユーザーの入力値にマッチした情報の抽出を行うとか、
そういう制御は得意かと思っていたんですが違うんですか?
それはサーバサイドでやるべき事っていうことですか。
根本的なところを理解していなかったか・・_| ̄|〇ガックリ
225nobodyさん
04/01/10 22:17ID:??? 保守。
♥
?
?x2665;
♥
?
?x2665;
226nobodyさん
04/01/14 03:43ID:??? 不具合か
Mozillaでバッチリなのに IE で真っ白ってどういうことだ
Mozillaでバッチリなのに IE で真っ白ってどういうことだ
227225
04/01/17 15:58ID:??? 順番を入れ替えただけでうまくいくってのはどういうこった
228227
04/01/17 15:59ID:??? 名前は226だった
229226 227 228
04/01/17 16:17ID:??? >>221
外部パラメータを与えるxmlを用意すれば、やりたい事をかなえてくれる
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet version="1.0" encoding="UTF-8" type="text/xsl" href="page.xsl" ?>
<page index="50">
</page>
みたいな中身のないxmlを用意し、xslで <xsl:param name="index" select="/page/@index" /> をよませるのだ。
xslでは 220の <xsl:if test=" ( $index < position() ) and ( position() <= $index + 50 )"> を使う。
page.xml (中身あり) では<page index="0">、
page1.xml (中身なし) では<page index="50">、
page2.xml (中身なし) では<page index="100">、
page3.xml (中身なし) では<page index="150">、と書いておく。
page.xsl では <xsl:copy-of select="document( "page.xml" )/page/foo" /> みたいな、ドキュメントを指定した形で読み込む。
( select="/page/foo" では不可能。<xsl:template match="/page/foo"> も恐らく無理 )
おすすめは xsl:for-each
<xsl:template match="/page">
<xsl:param name="index" select="/page/@index" />
<xsl:for-each select="document( "page.xml" )/page/foo">
<xsl:if test=" ( $index < position() ) and ( position() <= $index + 50 )">
<xsl:copy-of select="current()" />
</xsl:if>
</xsl:for-each>
</xsl:template>
と、こんな感じではないかな。
ところどころ間違いがあるかもしれないが、その辺は勘弁してくれ
外部パラメータを与えるxmlを用意すれば、やりたい事をかなえてくれる
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet version="1.0" encoding="UTF-8" type="text/xsl" href="page.xsl" ?>
<page index="50">
</page>
みたいな中身のないxmlを用意し、xslで <xsl:param name="index" select="/page/@index" /> をよませるのだ。
xslでは 220の <xsl:if test=" ( $index < position() ) and ( position() <= $index + 50 )"> を使う。
page.xml (中身あり) では<page index="0">、
page1.xml (中身なし) では<page index="50">、
page2.xml (中身なし) では<page index="100">、
page3.xml (中身なし) では<page index="150">、と書いておく。
page.xsl では <xsl:copy-of select="document( "page.xml" )/page/foo" /> みたいな、ドキュメントを指定した形で読み込む。
( select="/page/foo" では不可能。<xsl:template match="/page/foo"> も恐らく無理 )
おすすめは xsl:for-each
<xsl:template match="/page">
<xsl:param name="index" select="/page/@index" />
<xsl:for-each select="document( "page.xml" )/page/foo">
<xsl:if test=" ( $index < position() ) and ( position() <= $index + 50 )">
<xsl:copy-of select="current()" />
</xsl:if>
</xsl:for-each>
</xsl:template>
と、こんな感じではないかな。
ところどころ間違いがあるかもしれないが、その辺は勘弁してくれ
230nobodyさん
04/01/26 15:30ID:TZ0JMGYO データの格納をXMLに任せて、フォーム使ったCGI作りたいのですけど
よいサンプルページないですか?
表示はXHTMLでやってます。
よいサンプルページないですか?
表示はXHTMLでやってます。
231nobodyさん
04/01/27 19:27ID:b8cLgywQ <item name="WebSite" href="URL" />のような一風変わったXMLがありまして,
XSLを使ってリンクになっているHTMLを作りたいのですが,
<a href="<xsl:value-of select="./@href">"><xsl:value-of select="./@name"/></a>
のような記述をしますと,<が入れ子になっているのでエラーになってしまいます.
<xsl:text>で囲って<に置き換えたりしても駄目でした.
一体,どの様にしたら良いのでしょうか?宜しくお願いします.
XSLを使ってリンクになっているHTMLを作りたいのですが,
<a href="<xsl:value-of select="./@href">"><xsl:value-of select="./@name"/></a>
のような記述をしますと,<が入れ子になっているのでエラーになってしまいます.
<xsl:text>で囲って<に置き換えたりしても駄目でした.
一体,どの様にしたら良いのでしょうか?宜しくお願いします.
232nobodyさん
04/01/27 19:36ID:???233231
04/01/27 20:03ID:??? >>232
有難うございます.おっしゃる通り,@ITの記事を読んだだけの厨房です.
xsl:attributeでググったらやり方が分かりました.
仕事で使う際は,本を読んで真面目に勉強させて頂きます.
有難うございました.
同じ疑問を持った方の参考に(いないかな〜),以下で可能だと思われます.
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="./@href"/>
</xsl:attribute>
<xsl:value-of select="./@name"/>
</xsl:element>
有難うございます.おっしゃる通り,@ITの記事を読んだだけの厨房です.
xsl:attributeでググったらやり方が分かりました.
仕事で使う際は,本を読んで真面目に勉強させて頂きます.
有難うございました.
同じ疑問を持った方の参考に(いないかな〜),以下で可能だと思われます.
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="./@href"/>
</xsl:attribute>
<xsl:value-of select="./@name"/>
</xsl:element>
234nobodyさん
04/01/28 02:23ID:??? { } が使えるとかって知らないでしょ?マジで。
235nobodyさん
04/01/28 15:19ID:??? {./@href} で書けるのだが、<a href="..."> みたいな xhtml タグを xslt の中に書かないほうが良いらしい。
<a href="{./@href}"> <xsl:value-of select="./@name"/> </a>
<a href="{./@href}"> <xsl:value-of select="./@name"/> </a>
236nobodyさん
04/01/28 21:56ID:??? xmlをxslt使ってhtmlとかに変換して<a href...を作るには、もとのxmlで<a href=...なんて書けない。
235が正しい。
235が正しい。
237nobodyさん
04/01/29 01:45ID:??? 何言ってんだか。一度は仕様書読めよ。
238232
04/01/29 13:19ID:??? 俺の解答不味かったか。{} じゃなく <xsl:attribute/> を教えたのは俺の趣味と
Google で検索する時のことを考えてだったんだが、正直スマンかった。
で、>>235-236 の論点が良く分からんのだが、何が言いたいの?
Google で検索する時のことを考えてだったんだが、正直スマンかった。
で、>>235-236 の論点が良く分からんのだが、何が言いたいの?
239nobodyさん
04/01/29 13:43ID:??? >>236
( ゚д゚)ポカーン
それはさておき、漏れは {} 使う派。
attributeは、条件(if)によって属性追加する時くらいしか使わない。
多岐分岐(choose〜when)で属性の値を変える場合は、
直前で変数用意して、{} で埋める。
だって、見やすいんだも〜ん
( ゚д゚)ポカーン
それはさておき、漏れは {} 使う派。
attributeは、条件(if)によって属性追加する時くらいしか使わない。
多岐分岐(choose〜when)で属性の値を変える場合は、
直前で変数用意して、{} で埋める。
だって、見やすいんだも〜ん
240nobodyさん
04/01/29 23:46ID:??? xmlをxslt使ってhtmlとかに変換して<a href...を作るには、xslで<a href=...なんて書けない。
かな?
かな?
242nobodyさん
04/01/30 12:10ID:??? in : <item name="2ちゃんねる" href="http://www.2ch.net/"/>
xsl :
<xsl:template match="item">
<a href="{@href}"><xsl:value-of select="@name"/></a>
</xsl:template>
out : <a href="http://www.2ch.net">2ちゃんねる</a>
ってことじゃないのん?
xsl :
<xsl:template match="item">
<a href="{@href}"><xsl:value-of select="@name"/></a>
</xsl:template>
out : <a href="http://www.2ch.net">2ちゃんねる</a>
ってことじゃないのん?
245nobodyさん
04/01/30 22:40ID:??? <xsl:copy-of> で コピーしたノードのタグに、
<hoge xmlns=""> みたいに空欄の名前空間がつくのだが、これはどういう事なのだろうか。
-- hoge.xml --
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet version="1.0" encoding="UTF-8" type="text/xsl" href="./hoge.xsl" ?>
<hoges> hoge is <hoge> HOGE </hoge>. </hoges>
-- hoge.xsl --
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/hoges">
<xsl:copy-of select="text() | * | @*" />
</xsl:template>
</xsl:stylesheet>
-- hoge.html --
hoge is <hoge xmlns="">HOGE </hoge>.
目標は、↓なのだが。
-- hoge.html --
hoge is <hoge> HOGE </hoge>.
<hoge xmlns=""> みたいに空欄の名前空間がつくのだが、これはどういう事なのだろうか。
-- hoge.xml --
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet version="1.0" encoding="UTF-8" type="text/xsl" href="./hoge.xsl" ?>
<hoges> hoge is <hoge> HOGE </hoge>. </hoges>
-- hoge.xsl --
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/hoges">
<xsl:copy-of select="text() | * | @*" />
</xsl:template>
</xsl:stylesheet>
-- hoge.html --
hoge is <hoge xmlns="">HOGE </hoge>.
目標は、↓なのだが。
-- hoge.html --
hoge is <hoge> HOGE </hoge>.
246nobodyさん
04/01/31 01:39ID:??? 出力をHTMLにしたいみたいだけど、とりあえず
xsl:output method="html" とかしてみたら?
xsl:output method="html" とかしてみたら?
248245
04/01/31 15:24ID:??? う、msxmlのバグかな
お騒がせしました。失礼いたします
お騒がせしました。失礼いたします
249nobodyさん
04/02/01 01:23ID:??? JRE1.4.2でもなるよ
250nobodyさん
04/02/21 13:19ID:??? xsltからxsltを出力するときなんかで、{}という文字を含んだ属性を出力したいときにもattribute要素使うな。
一応{'{hoge}'}でいけると思うけどなんか変だし。
一応{'{hoge}'}でいけると思うけどなんか変だし。
251nobodyさん
04/02/21 19:00ID:4PYw/lWY252nobodyさん
04/02/22 17:24ID:??? みなさんXSLの作成は何でやってます?
XSLってもともと可読性にかけるし、
IEだとキャッシュ読んだりエラーがわかりにくかったりしてデバッグが激しくし辛いのだが。
XSLってもともと可読性にかけるし、
IEだとキャッシュ読んだりエラーがわかりにくかったりしてデバッグが激しくし辛いのだが。
253nobodyさん
04/02/22 18:13ID:??? 可読性に欠けないプログラミング言語ってある?
インデントとかコメントとか自分で工夫するもんじゃない?
IE じゃなくて、msxsl.exe とか使うのもいいと思うよ。
インデントとかコメントとか自分で工夫するもんじゃない?
IE じゃなくて、msxsl.exe とか使うのもいいと思うよ。
254ヽ(´ー`)ノ
04/02/22 18:14ID:??? > みなさんXSLの作成は何でやってます?
Emacs 使いなので Emacs で。
> XSLってもともと可読性にかけるし、
書き方が下手なだけだと思うが。
> IEだとキャッシュ読んだりエラーがわかりにくかったりしてデバッグが激しくし辛いのだが。
msxsl.exe
Emacs 使いなので Emacs で。
> XSLってもともと可読性にかけるし、
書き方が下手なだけだと思うが。
> IEだとキャッシュ読んだりエラーがわかりにくかったりしてデバッグが激しくし辛いのだが。
msxsl.exe
256250
04/02/23 13:14ID:??? >>251
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">
<xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/>
<xsl:template match="/">
<axsl:stylesheet>
<axsl:template match="/">
<foo bar="{'{aaa}'}"/>
</axsl:template>
</axsl:stylesheet>
</xsl:template>
</xsl:stylesheet>
こういう場合。
今試してみたらxsltproc(Using libxml 20604, libxslt 10102 and libexslt 802)だとunmatched '}'とパースエラーが出て、xalan 2.3.1だと問題無く処理できる。
xsltprocでもattribute要素使えば処理できる。
>>252
xsltはxmlなので読みやすいようにスタイルシートを適用してブラウザで見るのが良いかと。
直接編集できないけど。リアルタイムでスタイルシートを適用してくれるxmlエディタならできるかな?
エディタはEmacsでxml-lite-modeを使っている。xsltプロセッサはメインがxsltprocで変な動きをしたときはxalan。
タグの閉じ忘れがチェックできるだけでもだいぶ違うよ。
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">
<xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/>
<xsl:template match="/">
<axsl:stylesheet>
<axsl:template match="/">
<foo bar="{'{aaa}'}"/>
</axsl:template>
</axsl:stylesheet>
</xsl:template>
</xsl:stylesheet>
こういう場合。
今試してみたらxsltproc(Using libxml 20604, libxslt 10102 and libexslt 802)だとunmatched '}'とパースエラーが出て、xalan 2.3.1だと問題無く処理できる。
xsltprocでもattribute要素使えば処理できる。
>>252
xsltはxmlなので読みやすいようにスタイルシートを適用してブラウザで見るのが良いかと。
直接編集できないけど。リアルタイムでスタイルシートを適用してくれるxmlエディタならできるかな?
エディタはEmacsでxml-lite-modeを使っている。xsltプロセッサはメインがxsltprocで変な動きをしたときはxalan。
タグの閉じ忘れがチェックできるだけでもだいぶ違うよ。
257nobodyさん
04/02/25 08:26ID:Hbu4YFmr XSLTって自分自身を出力するスタイルシートは書ける?
258nobodyさん
04/03/24 22:07ID:QhqWFZPy xhtml文書をxsltprocで変換したいと思ってるんだけど、
xhtml側のnamespaceの状態よってマッチしたりしなかったりするので困ってる。
----- test.xsl -----
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="html"/>
</xsl:stylesheet>
-----------------
[実行例] $ xsltproc.exe -v test.xsl test.xml 2>&1 | grep xsltProcessOneNode
----- test.xml -----
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"/>
-----------------
xsltProcessOneNode: no template found for /
xsltProcessOneNode: no template found for html
このようにマッチしない。でも、namespaceを消したり名前を付けたりするとマッチする。
----- test.xml -----
<?xml version="1.0"?>
<html xmlns:xhtml="http://www.w3.org/1999/xhtml"/>
-----------------
xsltProcessOneNode: no template found for /
xsltProcessOneNode: applying template 'html' for html
何故?また回避策は?
#現象が再現できる最小のソースです。validなxhtmlに対しても同様です。
xhtml側のnamespaceの状態よってマッチしたりしなかったりするので困ってる。
----- test.xsl -----
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="html"/>
</xsl:stylesheet>
-----------------
[実行例] $ xsltproc.exe -v test.xsl test.xml 2>&1 | grep xsltProcessOneNode
----- test.xml -----
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"/>
-----------------
xsltProcessOneNode: no template found for /
xsltProcessOneNode: no template found for html
このようにマッチしない。でも、namespaceを消したり名前を付けたりするとマッチする。
----- test.xml -----
<?xml version="1.0"?>
<html xmlns:xhtml="http://www.w3.org/1999/xhtml"/>
-----------------
xsltProcessOneNode: no template found for /
xsltProcessOneNode: applying template 'html' for html
何故?また回避策は?
#現象が再現できる最小のソースです。validなxhtmlに対しても同様です。
259nobodyさん
04/03/24 22:10ID:??? 2行目×状態よって○状態によって
xsltprocはCygwin版libxslt1.1.2-1です。
$ xsltproc --version
Using libxml 20604, libxslt 10102 and libexslt 802
xsltproc was compiled against libxml 20604, libxslt 10102 and libexslt 802
libxslt 10102 was compiled against libxml 20604
libexslt 802 was compiled against libxml 20604
xsltprocはCygwin版libxslt1.1.2-1です。
$ xsltproc --version
Using libxml 20604, libxslt 10102 and libexslt 802
xsltproc was compiled against libxml 20604, libxslt 10102 and libexslt 802
libxslt 10102 was compiled against libxml 20604
libexslt 802 was compiled against libxml 20604
260nobodyさん
04/03/29 11:53ID:??? namespaceというのは要素の苗字に当たります。
xmlns="http://www.w3.org/1999/xhtml"
と指定することは、この要素とその子孫要素の内プレフィックスの付いてないものの苗字は"http://www.w3.org/1999/xhtml"ですよと宣言することで、
xmlns:xhtml="http://www.w3.org/1999/xhtml"
と指定することは、この要素とその子孫要素のうちxhtmlというプレフィックスが付いているものの苗字は"http://www.w3.org/1999/xhtml"ですよと宣言することです。
ですから1番目のtest.xmlのhtml要素はhttp://www.w3.org/1999/xhtmlという苗字を持ったhtml要素ということになります。
一方2番目のtest.xmlのhtml要素にはxhtmlというプレフィックスが無いため苗字無しのhtml要素となります。
test.xslでは苗字無しのhtml要素にマッチするようになっているため1番目のtest.xmlにはマッチしませんが2番目のtest.xmlではマッチします。
解決するためにはtest.xslのxsl:template要素にxmlns="http://www.w3.org/1999/xhtml"と宣言を加えるか、
xmlns:xhtml="http://www.w3.org/1999/xhtml"と宣言を加えてxsl:templateのmatch属性を"xhtml:html"とします。
これで苗字付きのhtml要素にマッチするようになります。
xmlns="http://www.w3.org/1999/xhtml"
と指定することは、この要素とその子孫要素の内プレフィックスの付いてないものの苗字は"http://www.w3.org/1999/xhtml"ですよと宣言することで、
xmlns:xhtml="http://www.w3.org/1999/xhtml"
と指定することは、この要素とその子孫要素のうちxhtmlというプレフィックスが付いているものの苗字は"http://www.w3.org/1999/xhtml"ですよと宣言することです。
ですから1番目のtest.xmlのhtml要素はhttp://www.w3.org/1999/xhtmlという苗字を持ったhtml要素ということになります。
一方2番目のtest.xmlのhtml要素にはxhtmlというプレフィックスが無いため苗字無しのhtml要素となります。
test.xslでは苗字無しのhtml要素にマッチするようになっているため1番目のtest.xmlにはマッチしませんが2番目のtest.xmlではマッチします。
解決するためにはtest.xslのxsl:template要素にxmlns="http://www.w3.org/1999/xhtml"と宣言を加えるか、
xmlns:xhtml="http://www.w3.org/1999/xhtml"と宣言を加えてxsl:templateのmatch属性を"xhtml:html"とします。
これで苗字付きのhtml要素にマッチするようになります。
レスを投稿する
ニュース
- 【自維】鮭おにぎり198円に絶望、コンビニすら遠い存在に…「生き延びられない」物価高で広がる生活苦★6 [ひぃぃ★]
- 【W杯】韓国が大窮地 悪夢のシナリオ止まらず 決勝T進出順位ボーダーの8位に転落 セネガル、イランに抜かれる ★5 [尺アジ★]
- イチロー氏、野球と比べてサッカーが「うらやましい」と語る 「チームのためにという感じが」「野球は個人で成績を出さないとボロカス」 [冬月記者★]
- 【サッカー】ブラジル戦、NHKは地上波なし 本田圭佑はBSで解説… 悲鳴続出「マジかよ」 地上波はフジテレビが生中継、解説は小野伸二 [冬月記者★]
- 【サッカー】日本代表、ブラジル戦でアウェーユニホーム着用へ… FIFAが公式発表 爆売れの白デザイン、W杯で初お披露目! [冬月記者★]
- 不快に感じる作業音3位は「パソコンのキーボード音」2位に「ボールペン等のノック音」…1位は?日本人は音に敏感すぎる? [muffin★]
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★219【メキシコ/カナダ/アメリカ】
- とらせん
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★218修正【メキシコ/カナダ/アメリカ】
- 〓たかせん〓
- 巨専】
- わしせん3
- おまんこの味
- 地震 [904880432]
- 日本人さん、震度5の地震にも動じず朝市を続ける [511393199]
- マイナカード補助金(税金)、業務委託・派遣会社の費用がマイナポイント配布時の最高額から一切減額していないことが判明😂 [422186189]
- 久しぶりにステーキ肉食ったら下痢になったんだが
- チューしたら怒る?