XSL/XSLT
1名無しさん@お腹いっぱい。
01/09/05 10:49ID:dYMWGvtU 語ろう。ていうか教えて。
102nobodyさん
02/07/05 01:35ID:???103Cocoon2
02/07/05 10:46ID:o63MT+vE104Spm
02/07/06 00:35ID:zVcgsDeC >>101
そりゃあ、priority属性の値の高いほうが優先してマッチしますから、
その例の下のテンプレートは適用されないに決まっているのですけど:
>どーにもこーにもうまくいきません
とのことですので、もちろん最初は、priority属性をつけないで
試しては見たのでしょう?
下のテンプレートの方が規則からいって優先度が高いのは自明ですし……
xalanてそんなものですか。いやXTから乗り換えようと思っていたので。
そりゃあ、priority属性の値の高いほうが優先してマッチしますから、
その例の下のテンプレートは適用されないに決まっているのですけど:
>どーにもこーにもうまくいきません
とのことですので、もちろん最初は、priority属性をつけないで
試しては見たのでしょう?
下のテンプレートの方が規則からいって優先度が高いのは自明ですし……
xalanてそんなものですか。いやXTから乗り換えようと思っていたので。
105101
02/07/06 02:17ID:vHzD1DJG >>104
すいません,書いた後に気付きました...
priority の値を逆にしてもやはり意図通りになりません.
もちろん,仰るとおり,より限定されているfoo要素の方が
優先順位が高いのは自明なのですが,苦肉の策で試してみました.
<xsl:template match="*" prioriry="0"> と
<xsl:template match="*" prioriry="1"> では
後者が確実に適用さますが,match の内容が異なるとダメみたいですね...
ちなみにXTでも試してみたのですが,xalanと挙動は同じでした.
むぅ.
すいません,書いた後に気付きました...
priority の値を逆にしてもやはり意図通りになりません.
もちろん,仰るとおり,より限定されているfoo要素の方が
優先順位が高いのは自明なのですが,苦肉の策で試してみました.
<xsl:template match="*" prioriry="0"> と
<xsl:template match="*" prioriry="1"> では
後者が確実に適用さますが,match の内容が異なるとダメみたいですね...
ちなみにXTでも試してみたのですが,xalanと挙動は同じでした.
むぅ.
106101
02/07/06 02:20ID:??? s/prioriry/priority/g
です
です
107Spm
02/07/06 20:49ID:zVcgsDeC >>106
当方のXTはきちんとfoo要素だけfooというテキストノードにしてくれてます。
priority属性もみてくれてますし。
これはxalanのせいじゃないかもしれないですね。
考えられるのは、qname(qualified name)が間違っていることくらいでしょうか。
マッチすらしてないって事です。
ソース文書のfoo要素に名前空間ついてませんか?
ルート要素にデフォルトの名前空間(xmlns="uri")つけてませんか?
名前空間を除いたものを返すからname()関数による分岐はうまくいくのでしょう。
これしか考えられないのですが、違ってたらすみません。
当方のXTはきちんとfoo要素だけfooというテキストノードにしてくれてます。
priority属性もみてくれてますし。
これはxalanのせいじゃないかもしれないですね。
考えられるのは、qname(qualified name)が間違っていることくらいでしょうか。
マッチすらしてないって事です。
ソース文書のfoo要素に名前空間ついてませんか?
ルート要素にデフォルトの名前空間(xmlns="uri")つけてませんか?
名前空間を除いたものを返すからname()関数による分岐はうまくいくのでしょう。
これしか考えられないのですが、違ってたらすみません。
108nobodyさん
02/07/07 00:44ID:wYb8dbIP >>107
>ソース文書のfoo要素に名前空間ついてませんか?
>ルート要素にデフォルトの名前空間(xmlns="uri")つけてませんか?
う,ビンゴです...
デフォルトの名前空間指定のないxml文書なら xalan でもうまくいきました.
ちなみに,デフォルトの名前空間がある場合にマッチさせる手段はあるのでしょうか?
match=":foo" なんて安直な方法じゃダメでした(恥)
# 「デフォルトの名前空間に関する問題は XSLT 2.0 で解決される」
# と聞いたことがあります.
>ソース文書のfoo要素に名前空間ついてませんか?
>ルート要素にデフォルトの名前空間(xmlns="uri")つけてませんか?
う,ビンゴです...
デフォルトの名前空間指定のないxml文書なら xalan でもうまくいきました.
ちなみに,デフォルトの名前空間がある場合にマッチさせる手段はあるのでしょうか?
match=":foo" なんて安直な方法じゃダメでした(恥)
# 「デフォルトの名前空間に関する問題は XSLT 2.0 で解決される」
# と聞いたことがあります.
109Spm
02/07/07 03:49ID:ZDF4GXlm ソースファイルが
(一般的にデフォルト名前空間が使われる)
XHTMLだったとすれば:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xht="http://www.w3.org/1999/xhtml"
>
と、名前空間接頭辞を定義して、
NodeTestでNameTestを使う際、その接頭辞をくっつけます。
<xsl:template match="child::xht:h1">
リテラルなど
</xsl:template>
これはカレントノードがh1要素だった場合にマッチするでしょう。
# default-xpath-namespace属性っていうものらしいですね。
# http://www.w3.org/TR/xslt20/#unprefixed-qnames より
(一般的にデフォルト名前空間が使われる)
XHTMLだったとすれば:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xht="http://www.w3.org/1999/xhtml"
>
と、名前空間接頭辞を定義して、
NodeTestでNameTestを使う際、その接頭辞をくっつけます。
<xsl:template match="child::xht:h1">
リテラルなど
</xsl:template>
これはカレントノードがh1要素だった場合にマッチするでしょう。
# default-xpath-namespace属性っていうものらしいですね。
# http://www.w3.org/TR/xslt20/#unprefixed-qnames より
110108
02/07/07 16:47ID:wYb8dbIP111nobodyさん
02/08/11 23:48ID:77b+zq0z XSLTは変数の値変更できなくて不便でしょうがないので、
もう使用しないことにした。
もう使用しないことにした。
112nobodyさん
02/08/16 08:50ID:q4PLH8KO 初めてXMLを扱うものですが、たのしいXMLの
http://www.cityfujisawa.ne.jp/~yanai/xml/sample2/basic1/home.html
ここを改造してソースを作っているのですが、うまくいきません。
とりあえず三つのソースを作りました。
-- test4.html --
<html>
<head>
<title>test4</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<xml id="list" src="testxml.xml"></xml>
<xml id="c1" src="c1.xsl"></xml>
<script language="JavaScript">
<!--
function inner() {
here.innerHTML = list.transformNode(c1.documentElement);
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form>
<input type="button" value="c1" onClick="inner()">
</form>
<div id="here"></div>
</body>
</html>
http://www.cityfujisawa.ne.jp/~yanai/xml/sample2/basic1/home.html
ここを改造してソースを作っているのですが、うまくいきません。
とりあえず三つのソースを作りました。
-- test4.html --
<html>
<head>
<title>test4</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<xml id="list" src="testxml.xml"></xml>
<xml id="c1" src="c1.xsl"></xml>
<script language="JavaScript">
<!--
function inner() {
here.innerHTML = list.transformNode(c1.documentElement);
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form>
<input type="button" value="c1" onClick="inner()">
</form>
<div id="here"></div>
</body>
</html>
113112のつづき
02/08/16 08:50ID:q4PLH8KO -- testxml.xml --
<?xml version="1.0" encoding="Shift_JIS" ?>
<test>mod</test>
-- c1.xsl --
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<p>before<xsl:value-of select="test@pid" />after</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
ここでtest4.htmlをクリックして
beforemodafter
と表示させれば成功なのですが、beforeafterとしか表示されません。
「たのしいXML」のソースを極めて胆略化した形で作ったのですが、うまく動かないのです。
どこが原因なのでしょうか。教えてください。
<?xml version="1.0" encoding="Shift_JIS" ?>
<test>mod</test>
-- c1.xsl --
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<p>before<xsl:value-of select="test@pid" />after</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
ここでtest4.htmlをクリックして
beforemodafter
と表示させれば成功なのですが、beforeafterとしか表示されません。
「たのしいXML」のソースを極めて胆略化した形で作ったのですが、うまく動かないのです。
どこが原因なのでしょうか。教えてください。
114112
02/08/16 11:12ID:??? >>113
ちょっと訂正
誤
<p>before<xsl:value-of select="test@pid" />after</p>
正
<p>before<xsl:value-of select="test" />after</p>
ちょっと訂正
誤
<p>before<xsl:value-of select="test@pid" />after</p>
正
<p>before<xsl:value-of select="test" />after</p>
115Spm
02/08/16 14:52ID:WjrAiya2 c1.xsl のxsl:stylesheetに、version="1.0" を追加してください。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
これで駄目ならスレ違い。MSXMLの話題になります。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
これで駄目ならスレ違い。MSXMLの話題になります。
117112
02/08/21 04:32ID:??? 原因がわかりました。
115さんの Version の記述忘れもそうなんですが、xmlns をxmlns:xsl="http://www.w3.org/1999/XSL/Transform にしてました。
つまり、僕が作る場合、閲覧者をIE5.0のXMLパーサー無しの環境で見てるのを前提に作らなきゃいけないので、自分のパソコンを同じ環境にしてあります。
で、
xmlns:xsl="http://www.w3.org/TR/WD-xsl”
としたら表示できました。
115さんの Version の記述忘れもそうなんですが、xmlns をxmlns:xsl="http://www.w3.org/1999/XSL/Transform にしてました。
つまり、僕が作る場合、閲覧者をIE5.0のXMLパーサー無しの環境で見てるのを前提に作らなきゃいけないので、自分のパソコンを同じ環境にしてあります。
で、
xmlns:xsl="http://www.w3.org/TR/WD-xsl”
としたら表示できました。
118K's
02/08/30 14:43ID:mcp2WYS4 XML初心者です。勉強をしているのですが、sortがうまく動きません。
下記にサンプルプログラムがありますが実際コピペして表示させたのですが
まったく表示されず、またエラーも出ません。sortの使い方教えていただけない
でしょうか。ちなみにIE5.0を使用しています。また使い方が間違えてるようでしたら
指摘ください。
「XML文書」
<?xml version="1.0" encoding="UTF-8"?>
<?xml:stylesheet type="text/xsl" href="sort.xsl"?>
<kakaku id="kakaku">
<title price="1500">ガイドブック</title>
<title price="2000">XML</title>
<title price="900">会社案内</title>
<title price="800">デジカメ</title>
<title price="1000">インターネット</title>
</kakaku>
「xsl文書」(BODY要素内のみ記述です)
<xsl:for-each select="kakaku">
<h2>価格詳細表</h2>
<table border="2px"><xsl:apply-templates match="title" /></table>
</xsl:for-each>
<xsl:for-each select="title">
<xsl:sort select="./@price" lang="UTF-8" data-type="number" order="ascending" />
<tr><td><xsl:value-of select="./@price" />(税別)円</td><td><xsl:value-of select="." /></td></tr>
</xsl:for-each>
下記にサンプルプログラムがありますが実際コピペして表示させたのですが
まったく表示されず、またエラーも出ません。sortの使い方教えていただけない
でしょうか。ちなみにIE5.0を使用しています。また使い方が間違えてるようでしたら
指摘ください。
「XML文書」
<?xml version="1.0" encoding="UTF-8"?>
<?xml:stylesheet type="text/xsl" href="sort.xsl"?>
<kakaku id="kakaku">
<title price="1500">ガイドブック</title>
<title price="2000">XML</title>
<title price="900">会社案内</title>
<title price="800">デジカメ</title>
<title price="1000">インターネット</title>
</kakaku>
「xsl文書」(BODY要素内のみ記述です)
<xsl:for-each select="kakaku">
<h2>価格詳細表</h2>
<table border="2px"><xsl:apply-templates match="title" /></table>
</xsl:for-each>
<xsl:for-each select="title">
<xsl:sort select="./@price" lang="UTF-8" data-type="number" order="ascending" />
<tr><td><xsl:value-of select="./@price" />(税別)円</td><td><xsl:value-of select="." /></td></tr>
</xsl:for-each>
119nobodyさん
02/08/30 16:57ID:??? >>118
<xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">がなぜ?
というのは置いといて、恐らく
select="./@price"
は
select="@price"
ではないかと。下のvalue-ofも。
も一つ考えられるのは、>>118のmsxml.dllが古くて、XSLTの名前空間がドラフトなのではないか?と
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
でなくて
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
ってなってない?
だとするとソートは、
<xsl:for-each select="title" order-by="number(@price)">
と書けば上手くいくはず。
<xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">がなぜ?
というのは置いといて、恐らく
select="./@price"
は
select="@price"
ではないかと。下のvalue-ofも。
も一つ考えられるのは、>>118のmsxml.dllが古くて、XSLTの名前空間がドラフトなのではないか?と
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
でなくて
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
ってなってない?
だとするとソートは、
<xsl:for-each select="title" order-by="number(@price)">
と書けば上手くいくはず。
120Spm
02/08/30 21:56ID:??? >>119
RelativeLocationPath ::= Step
| RelativeLocationPath '/' Step | AbbreviatedRelativeLocationPath
かつ、
Step ::= AxisSpecifier NodeTest Predicate* | AbbreviatedStep
かつ、
AbbreviatedStep ::= '.' | '..'
[参照] http://www.w3.org/TR/xpath
というわけで、./@price は合法のようです。
> <xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">がなぜ?
どこから>>118がこのサンプルを持ってきたのか気になりますな。
RelativeLocationPath ::= Step
| RelativeLocationPath '/' Step | AbbreviatedRelativeLocationPath
かつ、
Step ::= AxisSpecifier NodeTest Predicate* | AbbreviatedStep
かつ、
AbbreviatedStep ::= '.' | '..'
[参照] http://www.w3.org/TR/xpath
というわけで、./@price は合法のようです。
> <xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">がなぜ?
どこから>>118がこのサンプルを持ってきたのか気になりますな。
122K's
02/09/03 09:47ID:UYWG+Uf9 レス遅くなってすいません。社内のPCの台数が決まっていてなかなか
使用できないもので。。。
で、教えていただいた通りにやってみたのですがやはり表示されません。
それとこのサンプルは今となってはわかりませんがどっかのHPから
コピペしてきたものです。
<xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">
書いたのはapply-templates match="title" いかにfor-each select="title"を
適用すると解釈しているのですが。。。間違ってます?
使用できないもので。。。
で、教えていただいた通りにやってみたのですがやはり表示されません。
それとこのサンプルは今となってはわかりませんがどっかのHPから
コピペしてきたものです。
<xsl:apply-templates match="title" />のあとに<xsl:for-each select="title">
書いたのはapply-templates match="title" いかにfor-each select="title"を
適用すると解釈しているのですが。。。間違ってます?
123nobodyさん
02/09/03 12:03ID:??? >>122
んー。テンプレート系エレメントについてもう少し勉強した方がいいかも。
sortの使い方云々よりもxsl文書が正しく書けていないと思う。
もっとXSLTの各エレメントの意味をよく理解しましょう。
んー。テンプレート系エレメントについてもう少し勉強した方がいいかも。
sortの使い方云々よりもxsl文書が正しく書けていないと思う。
もっとXSLTの各エレメントの意味をよく理解しましょう。
124nobodyさん
02/09/04 23:35ID:??? W3Cムカツク。
あんなアフォどもに好き勝手にさせてて委員会?
あんなアフォどもに好き勝手にさせてて委員会?
125nobodyさん
02/09/06 01:19ID:ultmv2D3 >>118
<?xml:stylesheet じゃなく <?xml-stylesheet だよ。こっちはハイフン。
<?xml:stylesheet じゃなく <?xml-stylesheet だよ。こっちはハイフン。
127bloom
02/09/06 23:31ID:PkazN1aJ128nobodyさん
02/09/06 23:48ID:??? >127
なんかrefreshとか書いたMETAタグしかない小さなソースだけど、
ブラクラか何か?
なんかrefreshとか書いたMETAタグしかない小さなソースだけど、
ブラクラか何か?
130nobodyさん
02/09/09 12:28ID:GqnKQPj5 xsltで質問です。
xsl:variableを使って変数を定義する方法を覚えたんですが、DOMを使って外部から変数を定義する方法ってあるんでしょうか?
たとえばxmlを
<hoge>
<fuga id="1">foo1</fuga>
<fuga id="2">foo2</fuga>
<fuga id="3">foo3</fuga>
</hoge>
として
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="hoge/fuga">
<html>
<xsl:if test="@id='$bar'"> ←@
<xsl:value-of select="." />
</xsl:if>
</html>
</xsl:template>
</xsl:stylesheet>
と作ったとすると
<xsl:variable name="bar">1</xsl:variable>
みたいに定義することを外部からできるでしょうか?
もしくはDOMを使って
bar=3
みたいに定義できるのでしょうか?
xsl:variableを使って変数を定義する方法を覚えたんですが、DOMを使って外部から変数を定義する方法ってあるんでしょうか?
たとえばxmlを
<hoge>
<fuga id="1">foo1</fuga>
<fuga id="2">foo2</fuga>
<fuga id="3">foo3</fuga>
</hoge>
として
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="hoge/fuga">
<html>
<xsl:if test="@id='$bar'"> ←@
<xsl:value-of select="." />
</xsl:if>
</html>
</xsl:template>
</xsl:stylesheet>
と作ったとすると
<xsl:variable name="bar">1</xsl:variable>
みたいに定義することを外部からできるでしょうか?
もしくはDOMを使って
bar=3
みたいに定義できるのでしょうか?
131nobodyさん
02/09/09 13:20ID:??? W3C・・・・無能であることは確かだ。
132nobodyさん
02/09/09 15:14ID:???134nobodyさん
02/09/15 22:02ID:??? ノードの在る無しという条件で、
処理を分岐するというのがどうすればいいのかよくわかりません。
<xsl:choose>
<xsl:when test='?????'> ←ここ
.......処理
</xsl:when>
<xsl:otherwise>
.......別の処理
</xsl:otherwise>
</xsl:choose>
?????にどう書けばいいのかな。
処理を分岐するというのがどうすればいいのかよくわかりません。
<xsl:choose>
<xsl:when test='?????'> ←ここ
.......処理
</xsl:when>
<xsl:otherwise>
.......別の処理
</xsl:otherwise>
</xsl:choose>
?????にどう書けばいいのかな。
135nobodyさん
02/09/15 23:45ID:???136134
02/09/17 01:32ID:??? レスサンクス。
質問が悪かった。XMLソースがないとわかるわけないね。
<parent>
<context>
<childa>.......</childa> ←この部分が在ったり無かったりする。
</context>
<context>
</context>
</parent>
とりあえず今は、2つのXSLTファイルを用意して、
対応してる。
質問が悪かった。XMLソースがないとわかるわけないね。
<parent>
<context>
<childa>.......</childa> ←この部分が在ったり無かったりする。
</context>
<context>
</context>
</parent>
とりあえず今は、2つのXSLTファイルを用意して、
対応してる。
137Spm
02/09/17 01:59ID:0xmOo3Ol >>134 = >>136
>>135氏の言うとおりでは。ノード集合そのまま。例えば:
<xsl:when test="child::childa">
<xsl:choose>要素をどういう文脈で使っているかにも依存するので、
一概にchild::childaで良いとは言えませんが。
カレントノードは何ですか?
test属性値については、boolean関数が適用されます。
http://www.w3.org/TR/xpath#function-boolean
test属性値にノード集合を指定した場合、空ならfalse、それ以外はture.
>>135氏の言うとおりでは。ノード集合そのまま。例えば:
<xsl:when test="child::childa">
<xsl:choose>要素をどういう文脈で使っているかにも依存するので、
一概にchild::childaで良いとは言えませんが。
カレントノードは何ですか?
test属性値については、boolean関数が適用されます。
http://www.w3.org/TR/xpath#function-boolean
test属性値にノード集合を指定した場合、空ならfalse、それ以外はture.
138134=136
02/09/17 02:50ID:??? でキタ━━━(゚∀゚≡(゚∀゚≡゚∀゚)≡゚∀゚)━━━━!!!!!!!!!!
皆さんサンクスです。
試していたはずなのですが、
スペルミスなり、確認ミスなり、うっかりしてなりで見逃していた模様。
本当にありがとうございました。
皆さんサンクスです。
試していたはずなのですが、
スペルミスなり、確認ミスなり、うっかりしてなりで見逃していた模様。
本当にありがとうございました。
139nobodyさん
02/09/17 18:11ID:??? 書きこみ少ないなぁ。
このままじゃ、某XML Pressみたいに、
このスレも消滅してしまうかも。
このままじゃ、某XML Pressみたいに、
このスレも消滅してしまうかも。
140nobodyさん
02/09/18 11:14ID:hvk3cr7f じゃ、<age>
141nobodyさん
02/09/18 15:01ID:??? いや、<age/> だ。
142141
02/09/18 15:02ID:??? ていうか <sage/> ちゃった。
144nobodyさん
02/09/18 15:15ID:??? ここですか、XMLタグの使えない人々の集まるスレは
145JTR
02/09/25 19:45ID:y/qFoSLv ソフト・リサーチ・センターからCocoon2の書籍がでるみたい。
出版社のHPで目次見たけど結構よさげ。
たぶんC2の専門書って日本ではこれが最初かも。
それにしてもC2を仕事で使ってる人ってどれくらい
いるんだろうか。パフォーマンス的には問題ないのかな。
出版社のHPで目次見たけど結構よさげ。
たぶんC2の専門書って日本ではこれが最初かも。
それにしてもC2を仕事で使ってる人ってどれくらい
いるんだろうか。パフォーマンス的には問題ないのかな。
146nobodyさん
02/09/25 20:00ID:??? >>145
C2仕事で使ってるYO パフォーマンスはServletでSAX使ったアプリ書いた
のと同じ程度だYO(そのまんまじゃん)
C2自体がパフォーマンスの足を引っ張るというよりも、サーバのスペックとか
DBの性能とかが重要だねやっぱり。
C2仕事で使ってるYO パフォーマンスはServletでSAX使ったアプリ書いた
のと同じ程度だYO(そのまんまじゃん)
C2自体がパフォーマンスの足を引っ張るというよりも、サーバのスペックとか
DBの性能とかが重要だねやっぱり。
147nobodyさん
02/10/02 00:23ID:??? 他板でこんなスレ見つけました。
XML使いの板
http://pc3.2ch.net/test/read.cgi/hp/984950028/
レベル低め、XSLT中心、WEBでの利用。
他にXML語れる所知りませんか?
XML使いの板
http://pc3.2ch.net/test/read.cgi/hp/984950028/
レベル低め、XSLT中心、WEBでの利用。
他にXML語れる所知りませんか?
148nobodyさん
02/10/02 11:18ID:??? >>上様
こんなの。
XML [WebProg]
コンテンツとデザインの分離 [WebProg]
XMLの必要性 [プログラム]
XMLプログラミング [プログラム]
XMLを限り無くオカルトに語る [心と宗教]
こんなの。
XML [WebProg]
コンテンツとデザインの分離 [WebProg]
XMLの必要性 [プログラム]
XMLプログラミング [プログラム]
XMLを限り無くオカルトに語る [心と宗教]
150nobodyさん
02/10/05 16:58ID:eN4sGb4j 普通のプロバに設置するCGIでXLSTできないかなあ
152nobodyさん
02/10/07 05:30ID:???153nobodyさん
02/10/11 04:30ID:??? XSLTパーサのXERCESをインストールしようとしているのですが,うまくいきません.
解凍した後,コマンドラインから
SET CLASSPATH=%CLASSPATH%;C:\Xerces\xerces.jar
と入力しましたが,サンプルで試した所,
Exception in thresd "main" java.lang.NoClassDeFoundError
となってしまいました.バージョンは2.2.0です.
お分かりになる方,よろしくお願いします.
解凍した後,コマンドラインから
SET CLASSPATH=%CLASSPATH%;C:\Xerces\xerces.jar
と入力しましたが,サンプルで試した所,
Exception in thresd "main" java.lang.NoClassDeFoundError
となってしまいました.バージョンは2.2.0です.
お分かりになる方,よろしくお願いします.
154nobodyさん
02/10/15 01:38ID:okBjBmnc155nobodyさん
02/10/29 00:17ID:??? XMLからXSLT変換で、違う形式のXMLファイルを出力したとしよう。
変換後のXMLファイルと、変換に使ったXSLTファイルを用いて、
元のXMLファイルを再現できるものだろうか?
変換
XML[A] + XSLT → XML[B]
戻す。
XML[B]の情報 + XSLTの情報 → XML[A]
変換後のXMLファイルと、変換に使ったXSLTファイルを用いて、
元のXMLファイルを再現できるものだろうか?
変換
XML[A] + XSLT → XML[B]
戻す。
XML[B]の情報 + XSLTの情報 → XML[A]
157nobodyさん
02/10/29 23:52ID:??? 完全な再現は出来ないと思う。
同じXSLTを使って、おなじXML[B]を生成するのなら、出切るかもしれない。
いや、正直わからん。俺頭悪いし。
同じXSLTを使って、おなじXML[B]を生成するのなら、出切るかもしれない。
いや、正直わからん。俺頭悪いし。
158八べえ
02/11/12 15:09ID:gxn/By35 Cocoon2を使用して、WEB表示を行うとソースに
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
が追記されてしまいます。
これにより、Shift-JISで書いているxml,xsltが文字化けを起こしています。
sitemap.xmap,cocoon.xconfをみてもそれらしき設定が見当たりません。
どのようにしたら、追記されなくなるのでしょうか?
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
が追記されてしまいます。
これにより、Shift-JISで書いているxml,xsltが文字化けを起こしています。
sitemap.xmap,cocoon.xconfをみてもそれらしき設定が見当たりません。
どのようにしたら、追記されなくなるのでしょうか?
159bloom
02/11/12 15:36ID:VFQMwTMk160HTMLをSJISで表示
02/11/13 10:55ID:oYHYr3JM >>158
docs/samples/hello-page.xml
<?xml version="1.0" encoding="Shift_JIS"?>
を入れると、正常なUTF-8に変換されるので、文字化けしない。
結果charset=UTF-8
xslt の中のoutput は利かない。
結果htmlも、SJISにする場合は、serializer に指定する。
html serializer に、sjis 版追加
<map:serializer name="html-sjis" logger="sitemap.serializer.html" mime-type="text/html" pool-grow="4" pool-max="32" pool-min="4" src="org.apache.cocoon.serialization.HTMLSerializer">
<buffer-size>1024</buffer-size>
<encoding>Shift_JIS</encoding>
</map:serializer>
hello.html のマップをコピーして sjis バージョンを作る
<map:match pattern="hello-sjis.html"><!-- ここ**-->
<map:generate src="docs/samples/hello-page.xml"/>
<map:transform src="stylesheets/page/simple-page2html.xsl"/>
<map:serialize type="html-sjis"/><!-- ここ**-->
</map:match>
ばんざーい。 これで完成 結果charset=Shift_JIS
docs/samples/hello-page.xml
<?xml version="1.0" encoding="Shift_JIS"?>
を入れると、正常なUTF-8に変換されるので、文字化けしない。
結果charset=UTF-8
xslt の中のoutput は利かない。
結果htmlも、SJISにする場合は、serializer に指定する。
html serializer に、sjis 版追加
<map:serializer name="html-sjis" logger="sitemap.serializer.html" mime-type="text/html" pool-grow="4" pool-max="32" pool-min="4" src="org.apache.cocoon.serialization.HTMLSerializer">
<buffer-size>1024</buffer-size>
<encoding>Shift_JIS</encoding>
</map:serializer>
hello.html のマップをコピーして sjis バージョンを作る
<map:match pattern="hello-sjis.html"><!-- ここ**-->
<map:generate src="docs/samples/hello-page.xml"/>
<map:transform src="stylesheets/page/simple-page2html.xsl"/>
<map:serialize type="html-sjis"/><!-- ここ**-->
</map:match>
ばんざーい。 これで完成 結果charset=Shift_JIS
161XMLをSJISで出力
02/11/13 11:03ID:oYHYr3JM hello.html を指定すると UTF-8版が表示され、
hello-sjis.html を指定すると、 SJIS版が表示されるようになる。
別件だが
xml の出力の中の encoding=UTF-8 を変更する場合は、xslt の中で、
<xsl:output omit-xml-declaration="no" encoding="Shift_JIS"/>
とかやると良い。
hello-sjis.html を指定すると、 SJIS版が表示されるようになる。
別件だが
xml の出力の中の encoding=UTF-8 を変更する場合は、xslt の中で、
<xsl:output omit-xml-declaration="no" encoding="Shift_JIS"/>
とかやると良い。
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をどう書けばいいのでしょうか。
レスを投稿する
ニュース
- イチロー氏、野球と比べてサッカーが「うらやましい」と語る 「チームのためにという感じが」「野球は個人で成績を出さないとボロカス」 [冬月記者★]
- 【自維】鮭おにぎり198円に絶望、コンビニすら遠い存在に…「生き延びられない」物価高で広がる生活苦★6 [ひぃぃ★]
- 【W杯】韓国が大窮地 悪夢のシナリオ止まらず 決勝T進出順位ボーダーの8位に転落 セネガル、イランに抜かれる ★5 [尺アジ★]
- 【サッカー】ブラジル戦、NHKは地上波なし 本田圭佑はBSで解説… 悲鳴続出「マジかよ」 地上波はフジテレビが生中継、解説は小野伸二 [冬月記者★]
- 【サッカー】W杯の「日本VSブラジル」を他で例えると…Xで問いかけ話題「湘北vs山王」「明徳義塾vs大阪桐蔭」「ドトウvsオペラオー」★2 [o(^・-・^)o★]
- 不快に感じる作業音3位は「パソコンのキーボード音」2位に「ボールペン等のノック音」…1位は?日本人は音に敏感すぎる? [muffin★]
- 【えっち画像】たまにいるこういう奴
- 早く死刑執行して欲しい死刑囚と言えば
- 【高市悲報】日経社説、ブチ切れ。「強引な皇室典範改正は禍根を残す」 [803137891]
- なんでドッジボールは五輪種目にならないの?
- 【悲報】めちゃかわ女の子、彼氏の乳首と指を切り落として逮捕され判決の際泣きじゃくるも執行猶予でスキップしながらピースサイン [856698234]
- わいのボーナスがたぶん手取り30万くらいしかなさそうなんやが