トップページphp
340コメント124KB

XML

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 NGNG
PHP で XML を利用するスレ

php Javaページより「XML関連情報」
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/xml/
0035hoe2001/08/24(金) 01:07ID:???
XSL初めていじったが、意外と難しいなぁ。

atmarkitのサンプルそのままコピペしてMSXMLで動かそうと思ったら、
何も表示されなくて、<xsl:template match="/">の下にルート要素を
書いてやったら動いたよ。

これ気が付くのに1日かかった。
ブラウザで確認すると、何も表示されなくて、右クリック「ソースの
表示」はオリジナルのXMLファイルが出てきて、意味ないじゃーんと思いつつ、
DOMでXSL適用してファイルを出力したりして、なんか本末転倒な気がした。

ベタにDOMで処理したほうが100倍簡単じゃない?
慣れれば便利なのかなぁ。
とりあえず、早くXSLの処理の流れが見れる開発ツールが出るのをきぼーん。
0036名無しさん@お腹いっぱい。2001/08/25(土) 03:29ID:7ugG5HbM
PerlでXSL使えるの?
0037名無しさん@お腹いっぱい。2001/08/25(土) 08:51ID:???
>>36
CPAN で検索してみな
0038名無しさん@お腹いっぱい。01/08/27 02:42ID:tS61.dSc
expatって、gcc動かないプロバイダじゃダメかね。
0039名無しさん@お腹いっぱい。01/08/31 13:53ID:tCCbiIrA
VBScript+XMLは最強WEBプログミイング
0040名無しさん@お腹いっぱい。01/08/31 17:45ID:J1wEfWe6
>>39
そんなキミはプログマー
0041名無しさん@お腹いっぱい。01/09/01 01:31ID:Y4cmpl3c
意外な盲点(当たり前すぎて、気づかなかったこと)

XSLを使ってもXMLデータしか作れないこと。
XMLの世界を超えるにはDOMを使うしかないの?
0042名無しさん@お腹いっぱい。01/09/01 16:20ID:WRIOvSlk
>>41
違います
例えば XSLT を使って XML を CSV に落すような事も可能です (楽しいかは別にして)

http://www.w3.org/TR/xslt#output
0043名無しさん@お腹いっぱい。01/09/01 22:05ID:2sU726xs
XSLT は XML で閉じていること以外は魅力がないな。
0044名無しさん@お腹いっぱい。01/09/02 04:22ID:GNpBXK36
41 >pdfにもtxtにもおとせるだろ
0045名無しさん@お腹いっぱい。01/09/02 23:18ID:ZItOEjDY
SablotronでXMLからXHTMLを出力する時、DOCTYPE宣言を正しく
出すのはどうやるんでしょう?

XSLで
<xsl:output method="xml" encoding="Shift_JIS"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" indent="yes"/>
とか書いてもDOCTYPEが出ないようなんですが?

SablotronはWindows版の0.65です。
0046名無しさん@お腹いっぱい。01/09/03 20:11ID:Vsp2fF2E
>>40 (゚д゚)グマー
00474101/09/15 11:08ID:ZgzUNYrc
>>42
MSXML3.0で、ルート要素を出力してやらないとXSLが動かなかったので、
XMLはXMLで完結する必要があるかと思ってたよ。

あと、MSXMLのDOM上で変換すると、出力結果もDOMオブジェクトで
返ってくるんだけど、DOMオブジェクトってXMLデータじゃないと
エラーになるよね。ということで、XMLで完結しないといけないのかなと。
0048名無しさん@お腹いっぱい。01/09/18 20:04ID:OhWz5MBs
>>47 MSXMLのせいなのかなぁ?
3.0ってWDじゃなくて勧告の方に対応してるんだよね?
0049名無しさん@お腹いっぱい。01/09/18 20:39ID:fWPM4nHM
http://tcnweb.ne.jp/~yui/cgi-bin/002/apeboard_plus.cgi
素材やの素材を勝手に加工して、再配布してるサイトです。

http://natto.2ch.net/test/read.cgi?bbs=hp&key=998368128
web板の住民もお怒り。すでに掲示板のパスは破られた模様。
0050名無しさん@お腹いっぱい。01/09/18 22:52ID:???
>>49
君は誤爆なの?
XMLに何の関係があるの?
どうせ厨房なんだろうけど。
0051名無しさん@お腹いっぱい。01/09/21 01:07ID:RIYGknmQ
>>45 output method="xhtml"としたらいかがじゃろうか、と
書こうと思ってみてみたら、xhtmlってないの?

http://www.w3.org/TR/xslt#output

45さんはxhtmlじゃなきゃだめ…なんだろうなぁきっと。むぅ。
0052名無しさん@お腹いっぱい。01/09/22 11:01ID:EJpCVqks
曲のデータや、アルバムのデータを定義したDTDってありますか?
もし有名なのとかあったらそれにあわせようかなとか思うんですが
0053名無しさん@お腹いっぱい。01/09/23 00:21ID:???
perlで
<members>
<member>
<name>a</name>
</member>
<member>
<name>b</name>
</member>
</member>

のようなデータがあったときに
名前がbのデータ…<name>b</name>があるからそのまま
名前がcのデータ…<member><name>c</name></member>のデータを追加

ということをやりたいと思っています。
XML::DOMを使えば良いのかなと思ってドキュメントを見ていたのですが、
よくわかりません
XML::DOMでできるのでしょうか?
それとも他に適したライブラリがあるのでしょうか?
00545301/09/23 00:22ID:???
サンプルデータの一番下は</members>です。すみません。
00554501/09/24 11:25ID:QHj31C8Q
>>51
ちょっと前に全ページXHTMLに書き直したんで、今更戻りたくないん
ですよ。 まあ自己満足なのはその通りなんですけどね。
0056名無しさん@お腹いっぱい。01/09/27 09:06ID:p9okIkoU
ソートで指定する要素を変数で指定するにはどうやるんでしょうか?
<xsl:sort select="$orderby" />
ではうまくいきませんでした。
<p><xsl:value-of select="$orderby"/></p>
で値がうまくセットされているのは確認しました。
あと、
<xsl:sort select="title" />
のように直接要素名を入れるとうまくいくのも確認しました。
試している限り、変数のスコープの問題ではないように思います。
0057101/09/27 09:16ID:uGGD0TxI
それならココ
http://www.f2.dion.ne.jp/~impact14/
0058名無しさん@お腹いっぱい。01/09/27 11:58ID:hsURJSvU
>>55 XMLとして出力して、ネームスペースにXHTML指定して…
みたいな感じなのかなぁ。DOCTYPE出力用のXSLT命令って
なかったっけ?
っつーか全然勘違いしたこと書いてたらごめんね。
このスレなんかさみしくて。
0059DBに丸々ドキュメント保存するのには笑った01/09/28 07:01ID:???
>>58
データ規格としては優れているかもしれないけど…。
0060名無しさん@お腹いっぱい。01/09/29 17:27ID:rslZJeCE
age
0061初心者01/10/05 06:14ID:z3DWAxTU
>58
これじゃだめかな?

<xsl:output method="xml" version="1.0" encoding="UTF-8"
omit-xml-declaration="no" standalone="no"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
doctype-public="-//W3C//DTD XHTML 1.1//EN" />

それより、複数のNameSpaceを使ったXHTMLドキュメントを
単一のNameSpaceのXHTMLドキュメントに変換する方法で悩み中。
なぜか、html要素中に独自のnsが表示されてしまう
00626101/10/07 01:11ID:pScy9kEw
>61へ自己レス

<xsl:stylesheet exclude-result-prefixes="#default 独自のNS">で出力側にNSがコピーされることは避けられるみたいだけど、うちの環境(XT+Xerces)だとなぜか、子孫要素中にここで回避したNSがあらわれる…なぜ?
00634501/10/08 19:45ID:TROemo9Q
>>61
そうです。その通りでした。今日たまたま仕様書を読んでいたら、
doctype-systemとdoctype-publicを両方指定しないといけないと書かれ
ているのに気がつきました。やっぱりちゃんと読まなきゃ駄目ですね。
Sablotronのせいじゃあなかったんだ(Xalanも試してみて同じ動作だった
ので仕様書を読もうと思った)

で、このスレを思い出したら、ピンポイントで回答いただいてたんですね。
ありがとうございます。
0064名無しさん@お腹いっぱい。01/10/15 03:28ID:BxPPcakJ
XERCES-Jを使って、<TEXTAREA>に入力された文字データを
XML形式で保存しようとしています。
通常、<TEXTAREA>から来た改行コードはXMLに保存したときに
空白文字になってしまうので、XMLからデータを<TEXTAREA>に
データを戻すときに、もとのデータとは変わってしまいます。

XMLに改行つきテキストを保存させる場合どうしてますでしょうか?
0065名無しさん@お腹いっぱい。01/10/16 17:59ID:RIJnalaN
ここでいいかわからないのですがXMLと言うことでここで質問させていただきます。
もし違った場合、どのスレに行ったらいいか教えていただければうれしいです。

XMLのことはまったくの初心者なんですが、参考書としてこれは読んどけ!みたいな本って
ありますか??教えてください。あとオライリーから発売されば入門xmlはどうですか?
読んだ人いましたら感想きかせてください。
0066名無しさん@お腹いっぱい。01/10/16 18:55ID:???
>>65
日本語なら「標準XML完全解説」かしら。
0067名無しさん@お腹いっぱい。01/10/22 21:38ID:???
>>65

XML"以外"だったら何が得意かを書いたほうがアドバイスしやすい。
0068独学XML01/10/25 14:56ID:9/96eztC
うひゃひゃ
0069名無しさん@お腹いっぱい。01/11/14 11:58ID:vArBZbrO
XML勧告で名前につかえる文字っつーところで

名前開始文字は,Ll, Lu, Lo, Lt, Nlカテゴリ内の一つでなければならない。

ってあるんだけど、このLl, Lu, Lo, Lt, Nlって何?
誰か教えてプリーズ
0070名無しさん@お腹いっぱい。01/11/14 19:53ID:???
http://www.unicode.org/Public/UNIDATA/UnicodeData.html#General%20Category
Ll Letter, Lowercase
Lu Letter, Uppercase
Lo Letter, Other
Lt Letter, Titlecase
Nl Number, Letter
だそうだ。
0071名無しさん@お腹いっぱい。01/11/15 10:36ID:???
わー。ありがとうございます。感謝感激>>70
0072nobodyさん02/03/07 22:00ID:???
既存のhtmlをxmlに変換してくれるcgiとかはないかね?
0073nobodyさん02/03/08 01:45ID:???
HTML を XHTML にってのはあったような。
もっとも、当然元の文書が valid であることが前提だろうね。
0074nobodyさん02/07/06 02:33ID:MKHdJ5OB
XMLファイルがキャッシュされてしまい
XMLファイルを更新したときに、キャッシュを消さないと反映されないんですが
HTMLのMETAタグのような回避方法はないんですか?
どなたか教えてください、お願いします。
0075nobodyさん02/07/11 01:55ID:jvFTY4N6
Tidyは別に元HTMLにちょっとくらい間違いがあっても
適当に修正してXHTMLにしてくれるよ
0076nobodyさん02/07/16 03:22ID:???
DB初心者です。
  アクセスDBとXMLのDBの違いってあるんですか?
  XMLでDB作るんだったら、アクセスで作った方が楽ですよね?
0077nobodyさん02/07/16 03:59ID:???
XMLをDB用途にしようと思うなら、それはまちがっとる。
0078nobodyさん02/07/16 15:16ID:???
77さん、どういうことですか?
教授に「そんなんアクセスで十分じゃん。XMLなんて意味ないよ。
違いがないならアクセスでやれ」って言われて…。
聞かせてください。
0079nobodyさん02/07/17 19:21ID:???
eXcelonって無料?
00807702/07/21 02:28ID:8SLFqm/R
>78
卒研やるんだったら、これ読んでみては。
http://www.rpbourret.com/xml/XMLAndDatabases.htm
0081nobodyさん02/07/30 17:38ID:???
携帯向けサイト作ってます。
 いつもXSLとXMLをsablotronで処理してるんだけど
 そろそろ飽きてきたんで、
 違うやり方があったら教えてください。
0082nobodyさん02/07/30 19:15ID:???
Accessの方が簡単で、適しているなら、Accessでやれば?
仕様にXMLを使う理由がないなら、あえて使う必要はない。

もちろん、XMLにできて、Accessだけではとてもやる気が起きない
ことは沢山ある。というか、組み合わせて使うこともあるわけだし。

持ち歩く構造化DBとしてはXMLは適してると思うがね。
0083nobodyさん02/08/07 10:21ID:???
本にはcssはhtmlとxml用に、xslはxml用に開発されたとありますが、
xmlのスタイルシートはxslで書いてもcssで書いてもどっちでもいいんですか?
<?xml-stylesheet type="text/xsl" href="hoge.css"?>
こういう感じでもOKって事ですよね。
0084nobodyさん02/08/07 10:26ID:???
ていうか今試したら、
拡張子は*.unkoとかでも平気みたいなんですけど。
中身がちゃんとしてれば拡張子なんてどうでもいいんですか?
0085nobodyさん02/08/07 14:58ID:???
xmlを書いて、DTDも設定したんですけど、
確認のためにDTDで定義されていない要素を書いたら
なんのこともなしにxmlは表示されました。
IEで検証されるはずなのになんでですか。
0086nobodyさん02/08/07 16:25ID:???
>>84
どうでもいいんです。
仕様で規制されてません。
>>85
IEは標準で検証をおこないません。
0087nobodyさん02/08/07 16:58ID:???
>86
でも<タグ></タグ>という風になっていないとエラーが出ますよ。
これは検証されているとは言えないのですか?
0088nobodyさん02/08/07 18:37ID:???
>>87
それは「DTDが」検証されているかどうか
ということとは関係ありません。
0089nobodyさん02/08/08 10:49ID:???
<xsl:variable name="hoge">AAA</xsl:variable>
$hoge

とやっても変数がうまく使えないんですが。
0090nobodyさん02/08/08 11:05ID:???
あと、$hoge + 3 を $hoge_new に代入したい場合はどう書けばいいんですか。
0091nobodyさん02/08/08 17:33ID:xB7tXMmH
長い文章をXMLで扱いたいのですが、
xsltやcssを使って
<br>のように簡単に改行する方法は
無いでしょうか?
(<br>は不作法というのは簡便してね)

よろしくお願いします <(_ _)>
0092nobodyさん02/08/08 17:41ID:n0IVOtDi
そもそも元がどういうXMLでどういうUAを想定しているのか
009326702/08/10 02:32ID:???
>>91

<br/> とか?
00949102/08/10 11:02ID:6065tzLx
>>93さん、ありがとうです。

ワタシも先程気付いて試してみたんですが、
パーサーに無視されます(>_<)
0095nobodyさん02/08/10 13:39ID:iWj3ppL3
92への答えは無しかよ
0096nobodyさん02/08/10 14:00ID:???
>>95 泣くなよ

それより「簡便」ってのはワザト?

かんべん 【簡便】
(1)取り扱いが簡単で、便利な・こと(さま)。「扱いの―な道具」
(2)手っ取り早いこと。「―に済ます」
00979102/08/10 23:42ID:6065tzLx
質問しているだけなのに、なんで叩かれるの?

XMLやっている人は心が狭い人間が多いっていうのは
本当だね。
0098nobodyさん02/08/11 01:02ID:???
>97
<br/>無視するパーザって何?

xslt使えば、簡単に改行ぐらい入れられるだろうに...
クライアントサイドのxslt処理対応のUAとかcoccon使ってる、とかわかんないとな。
>92 の発言の意図も酌めてないみたいだが。

>XMLやっている人は心が狭い人間が多いっていうのは
>本当だね。

(´Д`)ハァ?被害者意識ですか?妄想してんな。デンパ?
00999102/08/11 16:28ID:0JshOq90
>>98
無視するパーサはsablotron0.95。

DB化されている情報を、
PostgreSQL→PHP→XML→PHP(sablotron)→HTML
という形でHTML化しようとしてるんだけど。
0100nobodyさん02/08/11 18:26ID:oWdfA3/I
XSLTがちゃんと書けてないんだと思うよ。普通にいって
0101.com masterさん02/08/12 16:44ID:UdGcdsPU
漏れのIE6も<br/>を無視するぞ。

test.xml------------------------------------
<?xml version="1.0" encoding="Shift-JIS" ?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<nanashi>
1<br/>
2<br/>
3<br/>
<nanashi>

test.xsl------------------------------------
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.01" encoding="Shift-JIS" indent="yes" />
<xsl:template match="/">
<html>
<body>
<xsl:value-of select="." />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
0102nobodyさん02/08/12 16:55ID:I4N87l8f
ぜんぜんIEのせいじゃないし。
おなじ間違いしてる人がいるからここみな。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1639&forum=9&4
0103nobodyさん02/08/12 21:35ID:???
<br />
じゃないのか。
0104nobodyさん02/08/12 21:38ID:???
そういうことじゃない。
0105nobodyさん02/08/12 22:32ID:???
ここにいる連中のレベルは底が知れているな。
0106nobodyさん02/08/17 21:07ID:???
 
0107nobodyさん02/08/21 14:32ID:Opn2Rq2W
89 :nobodyさん :02/08/08 10:49 ID:???
<xsl:variable name="hoge">AAA</xsl:variable>
$hoge

とやっても変数がうまく使えないんですが。


90 :nobodyさん :02/08/08 11:05 ID:???
あと、$hoge + 3 を $hoge_new に代入したい場合はどう書けばいいんですか。
0108nobodyさん02/08/21 16:00ID:???
>>107
> とやっても変数がうまく使えないんですが。

うまく使えない、って言い方が曖昧。どううまく使えないんだ?
などと意地悪いっても仕方がないので、予測で回答。

> <xsl:variable name="hoge">AAA</xsl:variable>
この書き方だと、hogeにはAAAというテキストノードを持つ”ノード集合”が割当たってることになる。
単純に文字列AAAを割り当てたいなら、
<xsl:variable name="hoge" select="AAA" />
とすべき。

> あと、$hoge + 3 を $hoge_new に代入したい場合はどう書けばいいんですか。
単純に<xsl:variable name="hoge_new" select="$hoge + 3" />でイイと思うが。
つか、パラメーター渡しなら<xsl:param>と<xsl:with-param>の方がイイと思うが。
0109nobodyさん02/08/22 09:49ID:zTnODq90
>>108
レスありがとうございます。
えっと、「うまく使えない」というのは
変数を当然参照したいわけなんですが、まずはただ単純に変数に値を入れて
それをxmlで表示しようとしています。
しかし、
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:param name="hoge" select="5" />

<xsl:template match="/">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<title>練習</title>
</head>
<body>
$hoge
</body>
</html>
</xsl:template>
</xsl:stylesheet>
とやっても$hogeのところはそのまま「$hoge」としか表示されないのです。
たぶん馬鹿なことやってると思うので指摘してもらえればと思ってます。
最終的に、xmlから特定の値を見て$hogeに代入→$hogeに数値を足して$hoge_newに代入→それを表示する
という感じにしたいのです。
0110nobodyさん02/08/22 11:58ID:???
すいません、調べたらできました。
<xsl:value-of select="$hoge"/>
こうやらないとだめだったんですね。
0111nobodyさん02/08/22 14:15ID:zTnODq90
<xsl:param name="counter" select="1" />
<xsl:for-each select="./ほげ">

<xsl:param name="counter" select="$counter + 1" />
<xsl:value-of select="$counter"/>

</xsl:for-each>

繰り返しを何回したか知りたいので回数を知ろうと思ったんですけど
これだとエラーが出ちゃいます。
おそらく<xsl:param name="counter" select="$counter + 1" />
がいけないんだと思うんですが。$counterに1を加えてさらにcounterに代入してるのがいけないんですかね。
0112 02/08/22 14:36ID:???
Internet Explorer Can Read Local Files (XML Datasource)
http://www.securiteam.com/windowsntfocus/5OP0H2K80I.html
<html>
<head>
<base href="file:///C:/">
</head><body>
<!--let code="com.ms.xml.dso.XMLDSO.class" width="0" height="0" id="xmldso" MAYSCRIPT="true"
<?xml version="1.0"?
<!DOCTYPE file [ <!ELEMENT file (#PCDATA)
<!ENTITY contents SYSTEM "file:///C:/jelmer.txt"
] <file
&contents;</file
</appl-->
<!--ipt language="javascript" setTimeout("showIt()",2000);
function showIt() {var jelmer = xmldso.getDocument();
alert(jelmer.Text);}
</scri--></body></html>
011310802/08/22 16:30ID:???
>>111=>>109?
for-eachって、select属性で指定したノードの数だけループするわけでしょ。
そしたらループする数を数えるんじゃなくて、そのノードの数でもよいのでは?
つまり、
<xsl:variable name="conter" select="count(//ほげ)" />
(何処で定義するのかワカランから、とりあえずxsl:stylesheet直下で定義して使えるよう「//ほげ」とした)

これじゃダメ?
011410802/08/23 12:26ID:???
>>113自己レス。

> >>111=>>109?
ID見れば一目瞭然でしたね。

> そしたらループする数を数えるんじゃなくて、そのノードの数でもよいのでは?
と思ったのは、>111で「繰り返しを何回したか」ってのを「繰り返しを”最終的に”何回したか」
という風に読んだため。「今何回目?」はこれじゃダメですよね。
そういう場合はposition()関数使うか、xsl:numberエレメント使ってみてください。
<xsl:variable name="counter" select="position" />とか
<xsl:variable name="counter"><xsl:number count="ほげ" /></xsl:variable>とか。

でも、どっちも<xsl:template match="ほげ">〜</xsl:template>内でしか使えないけど。
0115nobodyさん02/08/23 14:23ID:???
>>114
何度もすいません。
<xsl:variable name="counter"><xsl:number count="ほげ" /></xsl:variable>
このやり方でうまくいきました。
どうもありがとうございました。
0116nobodyさん02/08/23 15:43ID:???
<xsl:variable name="hoge" select="name()"/> と、
ある変数を宣言してから、別のテンプレートをapplyして、その中から
先ほどのhogeを取り出したいのですが、参照できない・・・これが
いわゆるスコープなんでしょうか?

だったらというんで、
<xsl:variable name="hoge">
 <xsl:value-of select="name()"/>
 <xsl:apply-templates select="なにか" />
</xsl:variable>
を思いついたんですが、冷静に考えるとダメ。
お馬鹿ですみません、良い方法はないものでしょうか。
0117nobodyさん02/08/23 16:45ID:???
xmlでデータ構造を決めてxslでレイアウトするわけですが、
レイアウトが複雑なほどxslでのコーディングは大変になります。
これは当然だと思うのですが、
xmlのデータ構造をxslをコーディングする時のことを考えて
やりやすいツリー構造にするというのはやはり当然なのでしょうか。
xmlはデータの構造、意味が大事だと思うのですが、
xslの時の事を考えて少しくらいやりやすい用に変えるというのはありですか?
使いたい値を
<hoge value="1">
<aiu></aiu>
</hoge>
の属性valueのように用意しておくとか。
011810802/08/23 16:45ID:???
>>116
> いわゆるスコープなんでしょうか?
そうです。で、こういう時こそパラメータ渡しでしょう。

<xsl:apply-templates select="なにか">
 <xsl:with-palam name="hoge" select=name()" />
</xsl:apply-templates>

<xsl:template match="なにか">
<xsl:palam name="hoge" />
<!-- 適当な処理を。ここで$hoge使って参照できます。 -->
</xsl:template>
0119nobodyさん02/08/23 17:14ID:???
>>118
あっ、パラメータとしてテンプレートに渡せるんですね。
ありがとうございます。やってみます。
(学校でXSLTバイブル借りてきて必死で読解中;)
0120nobodyさん02/08/23 17:18ID:???
>>117
element nodeをattribute nodeにしたところで、どちらもchild nodeだから
「コーディング」の手間はそんなに変わらないと思われ。
ただ、冗長になるxmlを簡素にするため子エレメントを属性にするというのはアリなんだろうけど。

<member>
  <name>ひろゆき</name>
  <age>35</age>
</member>

ってのを、

<member age="35">ひろゆき</member>

みたいに。
0121nobodyさん02/08/23 17:35ID:???
>>119
> あっ、パラメータとしてテンプレートに渡せるんですね。
そうです。
で、>118、誤記が多すぎますね、ゴメンナサイ。

 ×with-palam → ○with-param
 ×select=name()" → ○select="name()"
 ×palam → ○param

ちなみに、テンプレート内の<xsl:param name="hoge">にselect属性を書いてやると、
それがwith-paramで渡してないときに使うデフォルト値になります。
0122nobodyさん02/08/23 17:48ID:???
>>121
あ、ちょうど今それで真剣に悩んでいました。(w
(英語力つけなあかん・・・。)

キチンと渡ってるのが確認できました。ありがとうございます〜。
0123nobodyさん02/08/27 13:16ID:708yYzJe
javaの中でxmlにxslを適用してhtmlを吐き出すことって出来ますか?
0124nobodyさん02/08/27 14:40ID:???
>>123
javascript?
0125nobodyさん02/08/27 14:49ID:???
>>123
できますよ。Javaで。
0126nobodyさん02/08/29 17:23ID:9rDVXmvU
質問なんですが、たとえば

<aa>bbb
<cc>ddd</cc>
</aa>

というXMLがあったとして

<xsl:value-of select="aa" />
と指定すると
bbbddd
と出力されるじゃないですか。

これを

bbb
のみに指定したい場合、どうすればいいのでしょうか?
0127nobodyさん02/08/29 18:22ID:???
>>126
<xsl:value-of select="aa/text()" />
0128nobodyさん02/08/29 18:38ID:9rDVXmvU
thanks!
0129nobodyさん02/09/03 07:30ID:AvKW2Hmg
domをいじってて行き詰まってしまいました。
例えばXMLが以下のようにあるとして

<aa>
<bb id="1">cc1</bb>
<bb id="2">cc2</bb>
<bb id="3">cc3</bb>
</aa>

で、XSLT で表示させたいんですが、

<xsl:template match="aa/bb">
<html>
<body>
<xsl:if test="@id='1'"> ← @
<xsl:value-of select="." />
</xsl:if>
</body>
</html>
</xsl:template>

のようにし、domを使って@の部分の @id='1' を変数にしたいのです。ようするに@id=xとしたいのです。
で、xの値をformのselectなどを使って選択できるようにしたいのです。
まあようするにjavascriptからxsltの内容を少しだけ操作したいのですが、、。

項目が40くらいに増えそうなのでxsl:chooseを使うのは現実的ではないとは思います。
どうかご教授ください。お願いします。
013010802/09/03 09:19ID:???
>>129
私の場合、クライアントのmsxml.dllの事を考え、クライアントサイド(JavaScript)でなく
サーバーサイド(ASP)でやっつけてます。

MSXMLの4.0なら、まずXSLTで
  <xsl:param name="hoge"/>
をxsl:stylesheetの直下に置いて、
  <xsl:if test="@id=$hoge">
としておく。で、DOMでは
  xslProc.addParameter "hoge", 1
とする。
この、最後の1をフォームなりで取得した値にすればいいです。
まぁ、>>129の場合で言えばxですか。
addParameterについてはMSDNででも調べてみてください。

他のパーサーはわかんないです。
0131nobodyさん02/09/04 03:11ID:ZMCjz8y0
>>130
なるほど、ありがとうございます。

でもしんどいなぁそれ。俺はサーバーサイドのスクリプトは全く知らないもんで。

でも表示させたいバリエーションの数だけXSLTを作るものじゃないし。
みなさんはどうやって解決させてるのか知りたいです。
0132nobodyさん02/09/04 12:27ID:???
>>131
自分以外の不特定多数のクライアントサイドから
サーバに置いてある*.xslを書き換えられるのは、いかがなものかと...
0133nobodyさん02/09/10 22:07ID:hmjbWsYD
InfoteriaとかでXMLライブラリが高価な値段で売ってるけど、
あれってそんなに必要なの?
なんか、無くても全然問題ないような気がするんだけど・・・
0134nobodyさん02/09/11 02:21ID:???
>>133
全然必要ないんだけど、多少払ってもいいから XML 使いたいっていう客もいる。
まぁ設計だけするけど開発は外に出すような企業の情シス相手の怪しい商売だな。
013513302/09/11 08:30ID:qQMSK36W
>134
めちゃめちゃ判りやすい例えで説明してくれてありがとう。
■ このスレッドは過去ログ倉庫に格納されています