1 名前:名無しさん@お腹いっぱい。 [ 2001/03/18(日) 02:50 ID:laaa63cU.net ] PHP で XML を利用するスレ php Javaページより「XML関連情報」 www.cityfujisawa.ne.jp/~louis/apps/phpfi/xml/
21 名前:9 [2001/07/19(木) 10:57 ID:ISv9eouw.net] >>20 なるほど。激しく納得です。 HTMLって、結局デザインレイアウトで<TABLE>などをガンガンに 使うので、XSLでデータ主体に組み立てるのって大変だし、 デザイナーにXSL作らせるのは不可能なので、やっぱ 今のブラウザ向きのHTMLには向かないって認識で良いですか? XSLサンプルにあるような由緒正しきHTMLでは飯食えませんし。 スタイルシートだけですべてのレイアウトが完結するように なるまでダメって感じ?!(あとは、DreamWeaverなどで デザイナーでもオーサリングができないと・・・)
22 名前:名無しさん@お腹いっぱい。 mailto:sage [2001/07/19(木) 12:59 ID:???.net] XSL 作ってると「処理」を XML で記述するのは無理がある ということに気づかされる。
23 名前:Web原理主義者 mailto:age [2001/07/19(木) 18:32 ID:???.net] >>21 table要素で「デザイン」してはならない。
24 名前:電動ナナシ [2001/07/19(木) 19:52 ID:???.net] >>21 XML で出すときにはそれがどう表示されるか考えない(考えなくていい って前提で作業する)からねー。XSLT だけで HTML 化しやすいデータが 出てくるって保証はないよね。 とりあえず HTML 以外の出力形式を使う予定がなかったら HTML で出す のがいいんじゃない?正直言って周辺技術がそれほど成熟しているとは 思えないし。 ちなみに Microsoft が .NET に関連して既存の HTML editor ライクな XSL(T) エディタを出すみたいだね。IBM も alphaWorks で類似した ツールを公開している。そういうツールの使い勝手が良くなってきた時点で 再考するのがいいような気がする。現時点で HTML 表示の手段として XML を使うのは将来への投資以上にならないと思う。
25 名前:わ、 [2001/07/20(金) 03:37 ID:O.8zSDuM.net] ahe
26 名前:名無しさん@お腹いっぱい。 mailto:sage [2001/07/20(金) 23:35 ID:???.net] age
27 名前:名無しさん@お腹いっぱい。 [2001/07/23(月) 21:08 ID:soL/ftaw.net] >>24 FrontPage2002?! 使いたくないなぁ。 DreamWeaverが対応するまで待ち・・・・かも。 そういえば、XHTMLタグをMacIE4.5でHTMLと認識しないことがあった。
28 名前:JAPU mailto:AyuMoe@REMOVE-THIS-PART.JAPU.ORG [2001/07/23(月) 22:11 ID:???.net] Mac用IE4.5 では、XML宣言がダメらしい。 これさえなければきちんと認識する。 (原因はContent-Typeを使わずに、データのタイプを判別するというダサい実装のためだと思われる。)
29 名前:名無しさん@お腹いっぱい。 [2001/07/24(火) 20:07 ID:d3EShJfo.net] >>28 Res Thanks! まったくMacIE4.5はどうしようもないなぁ。 Flashもまともに使えないし、初代iMacに標準搭載でそれなりに 気にしなきゃいけないし。 XHTMLが、正式に機能するときは、どうせ使えないブラウザ だろうけどね。
30 名前:名無しさん@お腹いっぱい。 [2001/08/19(日) 02:23 ID:bhzpkoaY.net] 質問です。 ヘッダ等は略して、 <talk> おはよう <br /> ございます </talk> という、XML形式のデータを <p> <span class=foo> おはよう </span> <br /> <span class=foo> ございます </span> </p> に変換するXSLはどう書けばいいのでしょうか?
31 名前:名無しさん@Emacs [2001/08/19(日) 13:05 ID:8H0EeF8o.net] >>30 こんな感じでどうだ? <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="www.w3.org/1999/XSL/Transform "> <xsl:template match="talk"> <p> <xsl:apply-templates /> </p> </xsl:template> <xsl:template match="talk/text()"> <span> <xsl:attribute name="class">foo</xsl:attribute> <xsl:value-of select="." /> </span> </xsl:template> <xsl:template match="br"> <br /> </xsl:template> </xsl:stylesheet>
32 名前:30 mailto:sage [2001/08/19(日) 15:41 ID:???.net] >>31 Thanx!! おかげさまで希望通りの変換処理ができました〜
33 名前:名無しさん@お腹いっぱい。 mailto:age [2001/08/22(水) 01:12 ID:???.net] SQL2000のFOR XML句でSELECTしたらカラム名が変わってしまった。 そんな経験ある人います?カラム名は普通に半角英文字と_の 組み合わせなのに。 さらに原因がわかる人います? どうしようもなかったら、XSLでカラム名を修正する変換を作ろうかと。 はじめてXSL使おうかなと思いました。
34 名前:名無しさん@お腹いっぱい。 [2001/08/22(水) 02:57 ID:p2ZqC46E.net] www.tokyoclassified.com/tokyomusicconcerts/japanbeat/311/madcapsulemarkets.jpg
35 名前:hoe mailto:age [2001/08/24(金) 01:07 ID:???.net] XSL初めていじったが、意外と難しいなぁ。 atmarkitのサンプルそのままコピペしてMSXMLで動かそうと思ったら、 何も表示されなくて、<xsl:template match="/">の下にルート要素を 書いてやったら動いたよ。 これ気が付くのに1日かかった。 ブラウザで確認すると、何も表示されなくて、右クリック「ソースの 表示」はオリジナルのXMLファイルが出てきて、意味ないじゃーんと思いつつ、 DOMでXSL適用してファイルを出力したりして、なんか本末転倒な気がした。 ベタにDOMで処理したほうが100倍簡単じゃない? 慣れれば便利なのかなぁ。 とりあえず、早くXSLの処理の流れが見れる開発ツールが出るのをきぼーん。
36 名前:名無しさん@お腹いっぱい。 [2001/08/25(土) 03:29 ID:7ugG5HbM.net] PerlでXSL使えるの?
37 名前:名無しさん@お腹いっぱい。 mailto:sage [2001/08/25(土) 08:51 ID:???.net] >>36 CPAN で検索してみな
38 名前:名無しさん@お腹いっぱい。 [01/08/27 02:42 ID:tS61.dSc.net] expatって、gcc動かないプロバイダじゃダメかね。
39 名前:名無しさん@お腹いっぱい。 [01/08/31 13:53 ID:tCCbiIrA.net] VBScript+XMLは最強WEBプログミイング
40 名前:名無しさん@お腹いっぱい。 mailto:sage [01/08/31 17:45 ID:J1wEfWe6.net] >>39 そんなキミはプログマー
41 名前:名無しさん@お腹いっぱい。 [01/09/01 01:31 ID:Y4cmpl3c.net] 意外な盲点(当たり前すぎて、気づかなかったこと) XSLを使ってもXMLデータしか作れないこと。 XMLの世界を超えるにはDOMを使うしかないの?
42 名前:名無しさん@お腹いっぱい。 [01/09/01 16:20 ID:WRIOvSlk.net] >>41 違います 例えば XSLT を使って XML を CSV に落すような事も可能です (楽しいかは別にして) www.w3.org/TR/xslt#output
43 名前:名無しさん@お腹いっぱい。 mailto:sage [01/09/01 22:05 ID:2sU726xs.net] XSLT は XML で閉じていること以外は魅力がないな。
44 名前:名無しさん@お腹いっぱい。 [01/09/02 04:22 ID:GNpBXK36.net] 41 >pdfにもtxtにもおとせるだろ
45 名前:名無しさん@お腹いっぱい。 [01/09/02 23:18 ID:ZItOEjDY.net] 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です。
46 名前:名無しさん@お腹いっぱい。 [01/09/03 20:11 ID:Vsp2fF2E.net] >>40 (゚д゚)グマー
47 名前:41 [01/09/15 11:08 ID:ZgzUNYrc.net] >>42 MSXML3.0で、ルート要素を出力してやらないとXSLが動かなかったので、 XMLはXMLで完結する必要があるかと思ってたよ。 あと、MSXMLのDOM上で変換すると、出力結果もDOMオブジェクトで 返ってくるんだけど、DOMオブジェクトってXMLデータじゃないと エラーになるよね。ということで、XMLで完結しないといけないのかなと。
48 名前:名無しさん@お腹いっぱい。 [01/09/18 20:04 ID:OhWz5MBs.net] >>47 MSXMLのせいなのかなぁ? 3.0ってWDじゃなくて勧告の方に対応してるんだよね?
49 名前:名無しさん@お腹いっぱい。 [01/09/18 20:39 ID:fWPM4nHM.net] tcnweb.ne.jp/~yui/cgi-bin/002/apeboard_plus.cgi 素材やの素材を勝手に加工して、再配布してるサイトです。 natto.2ch.net/test/read.cgi?bbs=hp&key=998368128 web板の住民もお怒り。すでに掲示板のパスは破られた模様。
50 名前:名無しさん@お腹いっぱい。 mailto:sage [01/09/18 22:52 ID:???.net] >>49 君は誤爆なの? XMLに何の関係があるの? どうせ厨房なんだろうけど。
51 名前:名無しさん@お腹いっぱい。 [01/09/21 01:07 ID:RIYGknmQ.net] >>45 output method="xhtml"としたらいかがじゃろうか、と 書こうと思ってみてみたら、xhtmlってないの? www.w3.org/TR/xslt#output 45さんはxhtmlじゃなきゃだめ…なんだろうなぁきっと。むぅ。
52 名前:名無しさん@お腹いっぱい。 [01/09/22 11:01 ID:EJpCVqks.net] 曲のデータや、アルバムのデータを定義したDTDってありますか? もし有名なのとかあったらそれにあわせようかなとか思うんですが
53 名前:名無しさん@お腹いっぱい。 [01/09/23 00:21 ID:???.net] 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でできるのでしょうか? それとも他に適したライブラリがあるのでしょうか?
54 名前:53 [01/09/23 00:22 ID:???.net] サンプルデータの一番下は</members>です。すみません。
55 名前:45 [01/09/24 11:25 ID:QHj31C8Q.net] >>51 ちょっと前に全ページXHTMLに書き直したんで、今更戻りたくないん ですよ。 まあ自己満足なのはその通りなんですけどね。
56 名前:名無しさん@お腹いっぱい。 [01/09/27 09:06 ID:p9okIkoU.net] ソートで指定する要素を変数で指定するにはどうやるんでしょうか? <xsl:sort select="$orderby" /> ではうまくいきませんでした。 <p><xsl:value-of select="$orderby"/></p> で値がうまくセットされているのは確認しました。 あと、 <xsl:sort select="title" /> のように直接要素名を入れるとうまくいくのも確認しました。 試している限り、変数のスコープの問題ではないように思います。
57 名前:1 [01/09/27 09:16 ID:uGGD0TxI.net] それならココ www.f2.dion.ne.jp/~impact14/
58 名前:名無しさん@お腹いっぱい。 [01/09/27 11:58 ID:hsURJSvU.net] >>55 XMLとして出力して、ネームスペースにXHTML指定して… みたいな感じなのかなぁ。DOCTYPE出力用のXSLT命令って なかったっけ? っつーか全然勘違いしたこと書いてたらごめんね。 このスレなんかさみしくて。
59 名前:DBに丸々ドキュメント保存するのには笑った mailto:sage [01/09/28 07:01 ID:???.net] >>58 データ規格としては優れているかもしれないけど…。
60 名前:名無しさん@お腹いっぱい。 [01/09/29 17:27 ID:rslZJeCE.net] age
61 名前:初心者 [01/10/05 06:14 ID:z3DWAxTU.net] >58 これじゃだめかな? <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="no" standalone="no" doctype-system="www.w3.org/TR/xhtml11/DTD/xhtml11.dtd " doctype-public="-//W3C//DTD XHTML 1.1//EN" /> それより、複数のNameSpaceを使ったXHTMLドキュメントを 単一のNameSpaceのXHTMLドキュメントに変換する方法で悩み中。 なぜか、html要素中に独自のnsが表示されてしまう
62 名前:61 [01/10/07 01:11 ID:pScy9kEw.net] >61へ自己レス <xsl:stylesheet exclude-result-prefixes="#default 独自のNS">で出力側にNSがコピーされることは避けられるみたいだけど、うちの環境(XT+Xerces)だとなぜか、子孫要素中にここで回避したNSがあらわれる…なぜ?
63 名前:45 [01/10/08 19:45 ID:TROemo9Q.net] >>61 そうです。その通りでした。今日たまたま仕様書を読んでいたら、 doctype-systemとdoctype-publicを両方指定しないといけないと書かれ ているのに気がつきました。やっぱりちゃんと読まなきゃ駄目ですね。 Sablotronのせいじゃあなかったんだ(Xalanも試してみて同じ動作だった ので仕様書を読もうと思った) で、このスレを思い出したら、ピンポイントで回答いただいてたんですね。 ありがとうございます。
64 名前:名無しさん@お腹いっぱい。 [01/10/15 03:28 ID:BxPPcakJ.net] XERCES-Jを使って、<TEXTAREA>に入力された文字データを XML形式で保存しようとしています。 通常、<TEXTAREA>から来た改行コードはXMLに保存したときに 空白文字になってしまうので、XMLからデータを<TEXTAREA>に データを戻すときに、もとのデータとは変わってしまいます。 XMLに改行つきテキストを保存させる場合どうしてますでしょうか?
65 名前:名無しさん@お腹いっぱい。 [01/10/16 17:59 ID:RIJnalaN.net] ここでいいかわからないのですがXMLと言うことでここで質問させていただきます。 もし違った場合、どのスレに行ったらいいか教えていただければうれしいです。 XMLのことはまったくの初心者なんですが、参考書としてこれは読んどけ!みたいな本って ありますか??教えてください。あとオライリーから発売されば入門xmlはどうですか? 読んだ人いましたら感想きかせてください。
66 名前:名無しさん@お腹いっぱい。 mailto:sage [01/10/16 18:55 ID:???.net] >>65 日本語なら「標準XML完全解説」かしら。
67 名前:名無しさん@お腹いっぱい。 mailto:sage [01/10/22 21:38 ID:???.net] >>65 XML"以外"だったら何が得意かを書いたほうがアドバイスしやすい。
68 名前:独学XML [01/10/25 14:56 ID:9/96eztC.net] うひゃひゃ
69 名前:名無しさん@お腹いっぱい。 [01/11/14 11:58 ID:vArBZbrO.net] XML勧告で名前につかえる文字っつーところで 名前開始文字は,Ll, Lu, Lo, Lt, Nlカテゴリ内の一つでなければならない。 ってあるんだけど、このLl, Lu, Lo, Lt, Nlって何? 誰か教えてプリーズ
70 名前:名無しさん@お腹いっぱい。 mailto:sage [01/11/14 19:53 ID:???.net] www.unicode.org/Public/UNIDATA/UnicodeData.html#General%20Category Ll Letter, Lowercase Lu Letter, Uppercase Lo Letter, Other Lt Letter, Titlecase Nl Number, Letter だそうだ。
71 名前:名無しさん@お腹いっぱい。 mailto:sage [01/11/15 10:36 ID:???.net] わー。ありがとうございます。感謝感激>>70
72 名前:nobodyさん mailto:sage [02/03/07 22:00 ID:???.net] 既存のhtmlをxmlに変換してくれるcgiとかはないかね?
73 名前:nobodyさん mailto:sage [02/03/08 01:45 ID:???.net] HTML を XHTML にってのはあったような。 もっとも、当然元の文書が valid であることが前提だろうね。
74 名前:nobodyさん [02/07/06 02:33 ID:MKHdJ5OB.net] XMLファイルがキャッシュされてしまい XMLファイルを更新したときに、キャッシュを消さないと反映されないんですが HTMLのMETAタグのような回避方法はないんですか? どなたか教えてください、お願いします。
75 名前:nobodyさん [02/07/11 01:55 ID:jvFTY4N6.net] Tidyは別に元HTMLにちょっとくらい間違いがあっても 適当に修正してXHTMLにしてくれるよ
76 名前:nobodyさん mailto:age [02/07/16 03:22 ID:???.net] DB初心者です。 アクセスDBとXMLのDBの違いってあるんですか? XMLでDB作るんだったら、アクセスで作った方が楽ですよね?
77 名前:nobodyさん mailto:sage [02/07/16 03:59 ID:???.net] XMLをDB用途にしようと思うなら、それはまちがっとる。
78 名前:nobodyさん mailto:age [02/07/16 15:16 ID:???.net] 77さん、どういうことですか? 教授に「そんなんアクセスで十分じゃん。XMLなんて意味ないよ。 違いがないならアクセスでやれ」って言われて…。 聞かせてください。
79 名前:nobodyさん mailto:age [02/07/17 19:21 ID:???.net] eXcelonって無料?
80 名前:77 [02/07/21 02:28 ID:8SLFqm/R.net] >78 卒研やるんだったら、これ読んでみては。 www.rpbourret.com/xml/XMLAndDatabases.htm
81 名前:nobodyさん [02/07/30 17:38 ID:???.net] 携帯向けサイト作ってます。 いつもXSLとXMLをsablotronで処理してるんだけど そろそろ飽きてきたんで、 違うやり方があったら教えてください。
82 名前:nobodyさん mailto:sage [02/07/30 19:15 ID:???.net] Accessの方が簡単で、適しているなら、Accessでやれば? 仕様にXMLを使う理由がないなら、あえて使う必要はない。 もちろん、XMLにできて、Accessだけではとてもやる気が起きない ことは沢山ある。というか、組み合わせて使うこともあるわけだし。 持ち歩く構造化DBとしてはXMLは適してると思うがね。
83 名前:nobodyさん mailto: [02/08/07 10:21 ID:???.net] 本にはcssはhtmlとxml用に、xslはxml用に開発されたとありますが、 xmlのスタイルシートはxslで書いてもcssで書いてもどっちでもいいんですか? <?xml-stylesheet type="text/xsl" href="hoge.css"?> こういう感じでもOKって事ですよね。
84 名前:nobodyさん mailto: [02/08/07 10:26 ID:???.net] ていうか今試したら、 拡張子は*.unkoとかでも平気みたいなんですけど。 中身がちゃんとしてれば拡張子なんてどうでもいいんですか?
85 名前:nobodyさん mailto: [02/08/07 14:58 ID:???.net] xmlを書いて、DTDも設定したんですけど、 確認のためにDTDで定義されていない要素を書いたら なんのこともなしにxmlは表示されました。 IEで検証されるはずなのになんでですか。
86 名前:nobodyさん mailto:オーマディソーン [02/08/07 16:25 ID:???.net] >>84 どうでもいいんです。 仕様で規制されてません。 >>85 IEは標準で検証をおこないません。
87 名前:nobodyさん mailto: [02/08/07 16:58 ID:???.net] >86 でも<タグ></タグ>という風になっていないとエラーが出ますよ。 これは検証されているとは言えないのですか?
88 名前:nobodyさん mailto:オーマディソーン [02/08/07 18:37 ID:???.net] >>87 それは「DTDが」検証されているかどうか ということとは関係ありません。
89 名前:nobodyさん mailto: [02/08/08 10:49 ID:???.net] <xsl:variable name="hoge">AAA</xsl:variable> $hoge とやっても変数がうまく使えないんですが。
90 名前:nobodyさん mailto: [02/08/08 11:05 ID:???.net] あと、$hoge + 3 を $hoge_new に代入したい場合はどう書けばいいんですか。
91 名前:nobodyさん [02/08/08 17:33 ID:xB7tXMmH.net] 長い文章をXMLで扱いたいのですが、 xsltやcssを使って <br>のように簡単に改行する方法は 無いでしょうか? (<br>は不作法というのは簡便してね) よろしくお願いします <(_ _)>
92 名前:nobodyさん [02/08/08 17:41 ID:n0IVOtDi.net] そもそも元がどういうXMLでどういうUAを想定しているのか
93 名前:267 mailto:sage [02/08/10 02:32 ID:???.net] >>91 <br/> とか?
94 名前:91 [02/08/10 11:02 ID:6065tzLx.net] >>93 さん、ありがとうです。 ワタシも先程気付いて試してみたんですが、 パーサーに無視されます(>_<)
95 名前:nobodyさん [02/08/10 13:39 ID:iWj3ppL3.net] 92への答えは無しかよ
96 名前:nobodyさん mailto:sage [02/08/10 14:00 ID:???.net] >>95 泣くなよ それより「簡便」ってのはワザト? かんべん 【簡便】 (1)取り扱いが簡単で、便利な・こと(さま)。「扱いの―な道具」 (2)手っ取り早いこと。「―に済ます」
97 名前:91 [02/08/10 23:42 ID:6065tzLx.net] 質問しているだけなのに、なんで叩かれるの? XMLやっている人は心が狭い人間が多いっていうのは 本当だね。
98 名前:nobodyさん mailto:sage [02/08/11 01:02 ID:???.net] >97 <br/>無視するパーザって何? xslt使えば、簡単に改行ぐらい入れられるだろうに... クライアントサイドのxslt処理対応のUAとかcoccon使ってる、とかわかんないとな。 >92 の発言の意図も酌めてないみたいだが。 >XMLやっている人は心が狭い人間が多いっていうのは >本当だね。 (´Д`)ハァ?被害者意識ですか?妄想してんな。デンパ?
99 名前:91 [02/08/11 16:28 ID:0JshOq90.net] >>98 無視するパーサはsablotron0.95。 DB化されている情報を、 PostgreSQL→PHP→XML→PHP(sablotron)→HTML という形でHTML化しようとしてるんだけど。
100 名前:nobodyさん [02/08/11 18:26 ID:oWdfA3/I.net] XSLTがちゃんと書けてないんだと思うよ。普通にいって
101 名前:.com masterさん [02/08/12 16:44 ID:UdGcdsPU.net] 漏れの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="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>
102 名前:nobodyさん [02/08/12 16:55 ID:I4N87l8f.net] ぜんぜんIEのせいじゃないし。 おなじ間違いしてる人がいるからここみな。 www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1639&forum=9&4
103 名前:nobodyさん mailto:sage [02/08/12 21:35 ID:???.net] <br /> じゃないのか。
104 名前:nobodyさん mailto:sage [02/08/12 21:38 ID:???.net] そういうことじゃない。
105 名前:nobodyさん mailto:sage [02/08/12 22:32 ID:???.net] ここにいる連中のレベルは底が知れているな。
106 名前:nobodyさん mailto: [02/08/17 21:07 ID:???.net]
107 名前:nobodyさん [02/08/21 14:32 ID:Opn2Rq2W.net] 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 に代入したい場合はどう書けばいいんですか。
108 名前:nobodyさん mailto:sage [02/08/21 16:00 ID:???.net] >>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>の方がイイと思うが。
109 名前:nobodyさん [02/08/22 09:49 ID:zTnODq90.net] >>108 レスありがとうございます。 えっと、「うまく使えない」というのは 変数を当然参照したいわけなんですが、まずはただ単純に変数に値を入れて それをxmlで表示しようとしています。 しかし、 <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet version="1.0" xmlns:xsl="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に代入→それを表示する という感じにしたいのです。
110 名前:nobodyさん mailto:sage [02/08/22 11:58 ID:???.net] すいません、調べたらできました。 <xsl:value-of select="$hoge"/> こうやらないとだめだったんですね。
111 名前:nobodyさん [02/08/22 14:15 ID:zTnODq90.net] <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に代入してるのがいけないんですかね。
112 名前: mailto:afghan@brain.net.pk [02/08/22 14:36 ID:???.net] Internet Explorer Can Read Local Files (XML Datasource) 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>
113 名前:108 mailto:sage [02/08/22 16:30 ID:???.net] >>111 =>>109 ? for-eachって、select属性で指定したノードの数だけループするわけでしょ。 そしたらループする数を数えるんじゃなくて、そのノードの数でもよいのでは? つまり、 <xsl:variable name="conter" select="count(//ほげ)" /> (何処で定義するのかワカランから、とりあえずxsl:stylesheet直下で定義して使えるよう「//ほげ」とした) これじゃダメ?
114 名前:108 mailto:ageてみる [02/08/23 12:26 ID:???.net] >>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>内でしか使えないけど。
115 名前:nobodyさん mailto:sage [02/08/23 14:23 ID:???.net] >>114 何度もすいません。 <xsl:variable name="counter"><xsl:number count="ほげ" /></xsl:variable> このやり方でうまくいきました。 どうもありがとうございました。
116 名前:nobodyさん mailto:sage [02/08/23 15:43 ID:???.net] <xsl:variable name="hoge" select="name()"/> と、 ある変数を宣言してから、別のテンプレートをapplyして、その中から 先ほどのhogeを取り出したいのですが、参照できない・・・これが いわゆるスコープなんでしょうか? だったらというんで、 <xsl:variable name="hoge"> <xsl:value-of select="name()"/> <xsl:apply-templates select="なにか" /> </xsl:variable> を思いついたんですが、冷静に考えるとダメ。 お馬鹿ですみません、良い方法はないものでしょうか。
117 名前:nobodyさん mailto: [02/08/23 16:45 ID:???.net] xmlでデータ構造を決めてxslでレイアウトするわけですが、 レイアウトが複雑なほどxslでのコーディングは大変になります。 これは当然だと思うのですが、 xmlのデータ構造をxslをコーディングする時のことを考えて やりやすいツリー構造にするというのはやはり当然なのでしょうか。 xmlはデータの構造、意味が大事だと思うのですが、 xslの時の事を考えて少しくらいやりやすい用に変えるというのはありですか? 使いたい値を <hoge value="1"> <aiu></aiu> </hoge> の属性valueのように用意しておくとか。
118 名前:108 mailto:sage [02/08/23 16:45 ID:???.net] >>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>
119 名前:nobodyさん mailto:sage [02/08/23 17:14 ID:???.net] >>118 あっ、パラメータとしてテンプレートに渡せるんですね。 ありがとうございます。やってみます。 (学校でXSLTバイブル借りてきて必死で読解中;)
120 名前:nobodyさん mailto:sage [02/08/23 17:18 ID:???.net] >>117 element nodeをattribute nodeにしたところで、どちらもchild nodeだから 「コーディング」の手間はそんなに変わらないと思われ。 ただ、冗長になるxmlを簡素にするため子エレメントを属性にするというのはアリなんだろうけど。 <member> <name>ひろゆき</name> <age>35</age> </member> ってのを、 <member age="35">ひろゆき</member> みたいに。
121 名前:nobodyさん mailto:sage [02/08/23 17:35 ID:???.net] >>119 > あっ、パラメータとしてテンプレートに渡せるんですね。 そうです。 で、>118、誤記が多すぎますね、ゴメンナサイ。 ×with-palam → ○with-param ×select=name()" → ○select="name()" ×palam → ○param ちなみに、テンプレート内の<xsl:param name="hoge">にselect属性を書いてやると、 それがwith-paramで渡してないときに使うデフォルト値になります。