XMLなんでもスレ。
前スレ: 【XML】xmlns, XSLT, RelaxNG, JAXP, etc.【総合】
http://pc11.2ch.net/test/read.cgi/tech/1133280488/
前々スレ: 【必須?】XML技術【使ってる?】
http://pc8.2ch.net/test/read.cgi/tech/1090253584/
探検
<XML総合 part="3"/>
■ このスレッドは過去ログ倉庫に格納されています
2008/10/07(火) 17:40:09
109デフォルトの名無しさん
2008/12/25(木) 02:23:54110デフォルトの名無しさん
2008/12/25(木) 02:37:16111デフォルトの名無しさん
2008/12/27(土) 14:29:33 自分のホームページの資料的コンテンツのところをXML&XSLTにしようと思って勉強しはじめました。
友人に貰った何年も前の「10日で覚えるXML入門」とかいうの本を見てるんですが、いまいち分かりにくいので、他の入門書があったら教えて貰えませんか?
分けあって今PCがネットに繋げられない状況なので、ぐぐれってのは無しでお願いします(^_^;)
友人に貰った何年も前の「10日で覚えるXML入門」とかいうの本を見てるんですが、いまいち分かりにくいので、他の入門書があったら教えて貰えませんか?
分けあって今PCがネットに繋げられない状況なので、ぐぐれってのは無しでお願いします(^_^;)
112デフォルトの名無しさん
2008/12/27(土) 15:13:39 どっちかというとXSLTの本を買うべきなんじゃないかという気がするけど、
俺は全然わからないのでえろい人たのむ
俺は全然わからないのでえろい人たのむ
113デフォルトの名無しさん
2008/12/27(土) 15:23:01 Webになっちゃうけど「万葉の想い」には時々お世話になります。
とても説明が丁寧なので大変助けられます。
同僚が近くにいるときには微妙に利用しにくいのが何ですが(笑)。
とても説明が丁寧なので大変助けられます。
同僚が近くにいるときには微妙に利用しにくいのが何ですが(笑)。
114デフォルトの名無しさん
2008/12/27(土) 19:16:44 >>113
Webは見たこと無いけど、書籍( ttp://www.amazon.co.jp/dp/4881662201/ )はよかったな
Webは見たこと無いけど、書籍( ttp://www.amazon.co.jp/dp/4881662201/ )はよかったな
115デフォルトの名無しさん
2008/12/27(土) 20:01:03 とりあえずオライリーいっとけ
116デフォルトの名無しさん
2008/12/28(日) 11:30:54117デフォルトの名無しさん
2008/12/28(日) 14:00:00 なし。
ブラウザ実装のXSLTトランスフォーマは屑だらけな上、互換性ないから。
そういうことしたいならphpとかjspとかそっち系。
ブラウザ実装のXSLTトランスフォーマは屑だらけな上、互換性ないから。
そういうことしたいならphpとかjspとかそっち系。
118デフォルトの名無しさん
2008/12/28(日) 17:20:33 標準準拠してない処理系を切り捨てる気があるなら十分アリ。
119デフォルトの名無しさん
2008/12/28(日) 17:30:58 挑戦してみて一度挫折してみるのも技術の可能性と限界、適切な適用領域
を理解するために良いかも。
以前「元データのXMLをこのXSLTで変換すると、こ〜んなインタラクティブ
なHTMLページに!」なんてものを紹介された事があって、その実装の詳細
をみて驚愕した事がある。
それはまさにJavaScriptコードを生成するXSLT。HTML要素を出力する
templateの記述はほんの数行で、あとはJavaScript変数に値を代入する
templateやJavaScript関数を実行するtemplateが延々と続く。
これでXMLデータを変換すると殆ど空っぽのHTML文書に巨大JavaScript
プログラムが埋め込まれたものを生成。
で、具体的なHTML文書中の表示要素の生成やインタラクティブ云々は
全てJavaScriptプログラム側に丸投げされているという、そういう代物。
で、見て関心しているだけだったら良かったのだけど、そのXSLTのデバッグ
を仕事に振られて・・・(´Д⊂
を理解するために良いかも。
以前「元データのXMLをこのXSLTで変換すると、こ〜んなインタラクティブ
なHTMLページに!」なんてものを紹介された事があって、その実装の詳細
をみて驚愕した事がある。
それはまさにJavaScriptコードを生成するXSLT。HTML要素を出力する
templateの記述はほんの数行で、あとはJavaScript変数に値を代入する
templateやJavaScript関数を実行するtemplateが延々と続く。
これでXMLデータを変換すると殆ど空っぽのHTML文書に巨大JavaScript
プログラムが埋め込まれたものを生成。
で、具体的なHTML文書中の表示要素の生成やインタラクティブ云々は
全てJavaScriptプログラム側に丸投げされているという、そういう代物。
で、見て関心しているだけだったら良かったのだけど、そのXSLTのデバッグ
を仕事に振られて・・・(´Д⊂
120デフォルトの名無しさん
2008/12/28(日) 17:40:32 ろくにクロスブラウザされてなくて動作チェックに苦労したと・・・。
121デフォルトの名無しさん
2008/12/28(日) 17:43:46 クロスブラウザとかライブラリ側でやってくれてないと死ねるな。
122デフォルトの名無しさん
2008/12/28(日) 18:19:33 クロスブラウザも苦労しましたが、一番死ねたのがXSLTとJavaScriptが
素晴らしくフュージョンしてコンバインしていた点です。
XSLTのtemplateとしてJavaScriptの関数宣言が記述されていて、その
関数定義中の所々にまたXSLTのapply-templatesやfor-eachが記述
されている。
で、変換するXMLデータに応じて新しい関数を動的にバキバキ宣言して、
そのロジックをニョキニョキと自動生成するのです。
その技術ロマンは理解出来ないわけでもありません。ですが、
・変換対象のXMLデータに応じて、毎回JavaScript関数の内容が変化(涙)
・JavaScriptのデバッグをするのに、書き換えるのはXSLT、そのもどかしさ
・・・最終的にはXMLデータをJSON風のJavaScript Objectの配列に変換
するところだけにXSLTは用いて、「静的な」JavaScriptプログラムとして
ロジックを一から書き直して放り込んで始末しました。
プログラムの世界には、時々「混ぜては危険」なものもあると実感しました。
素晴らしくフュージョンしてコンバインしていた点です。
XSLTのtemplateとしてJavaScriptの関数宣言が記述されていて、その
関数定義中の所々にまたXSLTのapply-templatesやfor-eachが記述
されている。
で、変換するXMLデータに応じて新しい関数を動的にバキバキ宣言して、
そのロジックをニョキニョキと自動生成するのです。
その技術ロマンは理解出来ないわけでもありません。ですが、
・変換対象のXMLデータに応じて、毎回JavaScript関数の内容が変化(涙)
・JavaScriptのデバッグをするのに、書き換えるのはXSLT、そのもどかしさ
・・・最終的にはXMLデータをJSON風のJavaScript Objectの配列に変換
するところだけにXSLTは用いて、「静的な」JavaScriptプログラムとして
ロジックを一から書き直して放り込んで始末しました。
プログラムの世界には、時々「混ぜては危険」なものもあると実感しました。
123デフォルトの名無しさん
2008/12/28(日) 18:36:18 >関数定義中の所々にまたXSLTのapply-templatesやfor-eachが記述
されている。
>
>で、変換するXMLデータに応じて新しい関数を動的にバキバキ宣言して、
>そのロジックをニョキニョキと自動生成するのです。
さすがチューリング完全のXSLT・・・と言いたいが、
そういうのは実行中にオブジェクトのプロパティに関数突っ込むのがプロトタイプベースOOPの流儀なんだが。
ろくにjavascript触れないPGの苦肉の策にしか見えない。
てかHTML+DOMだけでできる気がする。
されている。
>
>で、変換するXMLデータに応じて新しい関数を動的にバキバキ宣言して、
>そのロジックをニョキニョキと自動生成するのです。
さすがチューリング完全のXSLT・・・と言いたいが、
そういうのは実行中にオブジェクトのプロパティに関数突っ込むのがプロトタイプベースOOPの流儀なんだが。
ろくにjavascript触れないPGの苦肉の策にしか見えない。
てかHTML+DOMだけでできる気がする。
124デフォルトの名無しさん
2008/12/28(日) 18:40:59 言語のコンパイラひとつ丸ごとデバッグしろっていうのに等しいなw
125デフォルトの名無しさん
2008/12/28(日) 19:06:30 実際、言語コンバータ一つ丸ごとデバッグしてるので間違ってないな。
126デフォルトの名無しさん
2008/12/28(日) 19:08:25 >>123
元々はSVGによるグラフをXSLTを使って生成する事が目的だった様です。
ところがSVGの代わりにFlashのグラフコンポーネントを使う事になって、
そのFlashではパラメーターをJavaScriptで渡す必要があった。
で、「よ〜しJavaScriptコードもXSLTで生成しちゃうぞ〜」となった様です。
やがてXSLTを用いたJavaScriptコードの生成技術にもますます磨きが
かかり、関数宣言やロジック実装までXSLTでバキバキ行うように。
いや動く、確かに動くんです。デバッグの手間や拡張さえ考えなければ。
技術の無駄遣いというか、どこで磨き方の方向を誤ったのやら・・・
>>124
いや、まさにそんな感じです。プログラムだけではなくコンパイラの面倒も
見なくちゃいけない、そんな感じでした。
元々はSVGによるグラフをXSLTを使って生成する事が目的だった様です。
ところがSVGの代わりにFlashのグラフコンポーネントを使う事になって、
そのFlashではパラメーターをJavaScriptで渡す必要があった。
で、「よ〜しJavaScriptコードもXSLTで生成しちゃうぞ〜」となった様です。
やがてXSLTを用いたJavaScriptコードの生成技術にもますます磨きが
かかり、関数宣言やロジック実装までXSLTでバキバキ行うように。
いや動く、確かに動くんです。デバッグの手間や拡張さえ考えなければ。
技術の無駄遣いというか、どこで磨き方の方向を誤ったのやら・・・
>>124
いや、まさにそんな感じです。プログラムだけではなくコンパイラの面倒も
見なくちゃいけない、そんな感じでした。
127デフォルトの名無しさん
2008/12/29(月) 00:47:44 俺はPHPでXSLTでXML整形してかきだすWikiみたいの作ってるけど
未実装関数とか多いわ挙動おかしいわで苦労することだけは伝えておこう。
あとhtml5で書こうとしてXSLTからはDOCTYPE生成できないとか、
妙に新しいことやるのもダメポ。
未実装関数とか多いわ挙動おかしいわで苦労することだけは伝えておこう。
あとhtml5で書こうとしてXSLTからはDOCTYPE生成できないとか、
妙に新しいことやるのもダメポ。
128デフォルトの名無しさん
2008/12/29(月) 01:11:45 >>127
DOCTYPE が生成できないとか嘘だろ。
DOCTYPE が生成できないとか嘘だろ。
129デフォルトの名無しさん
2008/12/29(月) 23:22:05130デフォルトの名無しさん
2008/12/30(火) 17:59:51 xml好きの俺が仕事納めに一言申します
php, jsp, aspとかのソース見てると罪悪感
嫌悪感を感じます
<e name="<%= value %>" />
なんか、いや、もうっやめてあげてえーー
php, jsp, aspとかのソース見てると罪悪感
嫌悪感を感じます
<e name="<%= value %>" />
なんか、いや、もうっやめてあげてえーー
131デフォルトの名無しさん
2008/12/30(火) 18:23:09 こういうXMLに変数値を埋め込む方法は悩ましいですねぇ。
E4Xではどうでしょう(以下はActionScript3の例)。
var value:String ="Foo bar"
var xml:XML = <e name={value} />
二重引用符が必要無いのが素敵。
E4Xではどうでしょう(以下はActionScript3の例)。
var value:String ="Foo bar"
var xml:XML = <e name={value} />
二重引用符が必要無いのが素敵。
132デフォルトの名無しさん
2008/12/30(火) 18:43:15 hamlとか割といいと思いますヨ
133デフォルトの名無しさん
2008/12/30(火) 21:40:53 普通にDOMで吐き出してるなあ
134デフォルトの名無しさん
2009/01/18(日) 23:24:09 亀だが、JSPならXML構文使えば?
数値文字参照とかELとかでいくらでも解消できるだろ。
数値文字参照とかELとかでいくらでも解消できるだろ。
135デフォルトの名無しさん
2009/01/20(火) 11:01:04 データをCSVからXMLに移行しようと思ったのですが、本が古くて今でも通用するのか心配です。
XMLでデータを作成して、XSLTでIEに表示させるようにするのが主流であってますか?
CSSという奴はどういう位置付けなんでしょうか?
XMLでデータを作成して、XSLTでIEに表示させるようにするのが主流であってますか?
CSSという奴はどういう位置付けなんでしょうか?
136デフォルトの名無しさん
2009/01/20(火) 11:01:41 すいません上げさせてください。
137デフォルトの名無しさん
2009/01/20(火) 11:47:45 >>135
XML で作成したデータを XSLT で変換するのは
IE じゃなくて Java とかのプログラムを使うのが普通かと。
ユーザーが全員 IE を使ってるわけではないし
全てのブラウザが正しく XSLT に対応しているわけでもない。
自分だけで使うなら IE でも全然かまわないが。
XSLT が文書構造(スタイル)を決定するのに対して
CSS は見た目(スタイル)を決める。
例えばデータを XSLT で表構造に変換して CSS で表に枠を付けるみたいに。
XML で作成したデータを XSLT で変換するのは
IE じゃなくて Java とかのプログラムを使うのが普通かと。
ユーザーが全員 IE を使ってるわけではないし
全てのブラウザが正しく XSLT に対応しているわけでもない。
自分だけで使うなら IE でも全然かまわないが。
XSLT が文書構造(スタイル)を決定するのに対して
CSS は見た目(スタイル)を決める。
例えばデータを XSLT で表構造に変換して CSS で表に枠を付けるみたいに。
138デフォルトの名無しさん
2009/01/20(火) 12:26:50 Java入れるくらいならそのページは見ない。
IE使ってる人 > そのページを見るためにJava入れてもいい人
この式が成り立つなら、IE対応で良いのでは?
サーバーサイドに関してはどうでもいいと思いますね。
IE使ってる人 > そのページを見るためにJava入れてもいい人
この式が成り立つなら、IE対応で良いのでは?
サーバーサイドに関してはどうでもいいと思いますね。
139デフォルトの名無しさん
2009/01/20(火) 12:31:46 これほどまでに珍妙なレスは久々に見た気がする
140デフォルトの名無しさん
2009/01/20(火) 13:14:48 >>138
JavaってXMLをHTMLに変換して表示するだけならサーブレットでいいんじゃないの。
ユーザー側は何も「入れる」必要なく見れる。
サーブレットまで行かなくてもPHP(笑)とかRubyとかPython使ってサーバー側で変換して、
ユーザーには変換後のHTML(+CSS)のみ返すのが主流じゃないか?
…それともjavascriptで変換するつもりじゃないよね?
JavaってXMLをHTMLに変換して表示するだけならサーブレットでいいんじゃないの。
ユーザー側は何も「入れる」必要なく見れる。
サーブレットまで行かなくてもPHP(笑)とかRubyとかPython使ってサーバー側で変換して、
ユーザーには変換後のHTML(+CSS)のみ返すのが主流じゃないか?
…それともjavascriptで変換するつもりじゃないよね?
141デフォルトの名無しさん
2009/01/20(火) 13:32:07 >>135
>XMLでデータを作成して、XSLTでIEに表示させるようにするのが主流であってますか?
そういう未来は結局来なかった、というのが正解では。
まずWebブラウザ上のXSLTプロセッサを利用してクライアントサイドで
XMLをHTML等に変換して表示、これはあまりポピュラーではない。
問題はつい最近までのブラウザのXSLT実装状況のばらつき。
積極的に使われるのは趣味か、イントラ等でクライアント環境が揃って
いる場合ぐらいではないかと思う。。
次にJava等のライブラリを用いてサーバーサイドで変換、変換結果の
HTML等をクライアントに送信する用途では、案外使われる。
ただしこの場合にはJSP等が対抗技術になる。
XMLで表現されたデータをそのまま表示する事というのは案外少なくて、
大抵はビューとの間にロジックを噛ます。そういう場合はXML上のデータ
を一旦Java等のオブジェクトにマッピングする必要があるし、この場合は
JSP等でビューを定義して出力した方が簡単。
サーバーサイドでの利用に関しては、ビューのテンプレートを記述する
技術のワンオブゼムという扱いだと思う。
>XMLでデータを作成して、XSLTでIEに表示させるようにするのが主流であってますか?
そういう未来は結局来なかった、というのが正解では。
まずWebブラウザ上のXSLTプロセッサを利用してクライアントサイドで
XMLをHTML等に変換して表示、これはあまりポピュラーではない。
問題はつい最近までのブラウザのXSLT実装状況のばらつき。
積極的に使われるのは趣味か、イントラ等でクライアント環境が揃って
いる場合ぐらいではないかと思う。。
次にJava等のライブラリを用いてサーバーサイドで変換、変換結果の
HTML等をクライアントに送信する用途では、案外使われる。
ただしこの場合にはJSP等が対抗技術になる。
XMLで表現されたデータをそのまま表示する事というのは案外少なくて、
大抵はビューとの間にロジックを噛ます。そういう場合はXML上のデータ
を一旦Java等のオブジェクトにマッピングする必要があるし、この場合は
JSP等でビューを定義して出力した方が簡単。
サーバーサイドでの利用に関しては、ビューのテンプレートを記述する
技術のワンオブゼムという扱いだと思う。
142デフォルトの名無しさん
2009/01/20(火) 13:34:22 IEのXSLTエンジンが一番屑な気がするんだが
143デフォルトの名無しさん
2009/01/20(火) 13:46:15 XML+XSLTの本しかないのでわからないのですが
XSLTを勉強するのは意味無駄だということでしょうか?
今のIEコンポーネントで自分のアプリ内だけでXMLデータを表示させるにはなんら問題はないんでしょうか?
どのみちきれいに見えるようにCSSも勉強しないといけないということですね。
XSLTを勉強するのは意味無駄だということでしょうか?
今のIEコンポーネントで自分のアプリ内だけでXMLデータを表示させるにはなんら問題はないんでしょうか?
どのみちきれいに見えるようにCSSも勉強しないといけないということですね。
144デフォルトの名無しさん
2009/01/20(火) 15:40:24 無意味って事はないよ。勉強という意味では学んでみるのも
悪くない。ただその本が書かれていた頃に期待されていたほど
大活躍はしていないというのも事実だと思う。
CSSについては書いてある通り。XSLTによってHTMLを出力する
にせよ、そのHTMLを見栄えのするものにするには結局CSS等の
Webオーサリング界隈で使われている技術を用いる必要がある。
悪くない。ただその本が書かれていた頃に期待されていたほど
大活躍はしていないというのも事実だと思う。
CSSについては書いてある通り。XSLTによってHTMLを出力する
にせよ、そのHTMLを見栄えのするものにするには結局CSS等の
Webオーサリング界隈で使われている技術を用いる必要がある。
145デフォルトの名無しさん
2009/01/20(火) 23:27:43 CSS Lv3が控えてるからなぁ。あれは組版にも耐える仕様。XSLTと衝突する。
まあ日本語組版に耐えうるかは知らんが・・・日本語は手でやるのが最強だしな。
まあ日本語組版に耐えうるかは知らんが・・・日本語は手でやるのが最強だしな。
146デフォルトの名無しさん
2009/01/21(水) 09:19:08147デフォルトの名無しさん
2009/01/21(水) 10:22:47 なんだ釣りか
148デフォルトの名無しさん
2009/01/21(水) 18:31:12 いやまぁ、俺もそれで大分悩んだクチだが。
>>146
結論から言うと、それは「ただの一意な文字列」であるという以上の意味はない。
「xmlns:xsl="http://www.w3.org/1999/XSL/Transform"」と書けば、
<xsl:〜>というタグはXSLT的に意味があるよ、というお約束なだけ。
ブラウザで開いてみれば分かるけど、そのアドレス自体は仕様へのリンクが
張ってあるだけのページで、XSLT処理系もパースの度にそこにアクセスしたりはしない。
>>146
結論から言うと、それは「ただの一意な文字列」であるという以上の意味はない。
「xmlns:xsl="http://www.w3.org/1999/XSL/Transform"」と書けば、
<xsl:〜>というタグはXSLT的に意味があるよ、というお約束なだけ。
ブラウザで開いてみれば分かるけど、そのアドレス自体は仕様へのリンクが
張ってあるだけのページで、XSLT処理系もパースの度にそこにアクセスしたりはしない。
149デフォルトの名無しさん
2009/01/22(木) 07:21:58 ありがとう!全XMLを一括管理されてるのかと思ってXMLやめようかと思ったよ
150デフォルトの名無しさん
2009/01/22(木) 07:32:37 全xml管理を想像した…
すごいスペックだ
すごいスペックだ
151デフォルトの名無しさん
2009/01/22(木) 07:59:41 THcompを思い出した。
152デフォルトの名無しさん
2009/01/22(木) 13:49:40 XMLのシンプルなデータ構造をブラウザで表示する場合一番いい方法はなんですか?
XMLにXSLTを参照させてXMLを表示
HTMLにXMLを参照させてHTMLを表示
XMLにXSLTを参照させてXMLを表示
HTMLにXMLを参照させてHTMLを表示
153デフォルトの名無しさん
2009/01/22(木) 13:59:18 Firefox なら xml を見るモードがあるけど、そういうのはダメなの?
154デフォルトの名無しさん
2009/01/22(木) 14:53:10 見た目を調整したいのですが、いろいろ実現する方法があるので、違いがわからず
決めかねてるんですが、組み合わせは実現できればどうでもいいんでしょうか?
決めかねてるんですが、組み合わせは実現できればどうでもいいんでしょうか?
155デフォルトの名無しさん
2009/01/22(木) 15:41:11 xhtmlにしてfirefoxでエディットモードでいじればいいんじゃないだろうか。
表示周りはCSSごりごり書いて。
表示周りはCSSごりごり書いて。
156デフォルトの名無しさん
2009/01/22(木) 15:46:36 html として解釈できない xml から html として解釈できる xml に変換するのが XSLT
html のレンダリング方法をいじる情報を付加するのが CSS
html のレンダリング方法をいじる情報を付加するのが CSS
157デフォルトの名無しさん
2009/01/22(木) 15:58:01 >>152
xsltかjavascriptかってことなんかな?
xsltかjavascriptかってことなんかな?
158デフォルトの名無しさん
2009/01/22(木) 16:42:56 Linux使えばいい。
159デフォルトの名無しさん
2009/01/22(木) 19:14:31 XMLにXSLTを参照させてXMLを表示
HTMLにXMLを参照させてHTMLを表示
この2つだとどっちが自然ですか?
両方HTMLにXMLの情報を取り込んでレイアウトできるんですが。
HTMLにXMLを参照させてHTMLを表示
この2つだとどっちが自然ですか?
両方HTMLにXMLの情報を取り込んでレイアウトできるんですが。
160デフォルトの名無しさん
2009/01/22(木) 19:43:59 >>159
「自然」の定義と、
>HTMLにXMLを参照させてHTMLを表示
これでちょっとよく分からない。フレームやJavaScriptで取り込む
と言うこと?
あとはサーバを介すか全てクライアントで処理するかでも変わる。
現状WebブラウザのXSLTプロセッサの利用は現実的ではない。
「自然」の定義と、
>HTMLにXMLを参照させてHTMLを表示
これでちょっとよく分からない。フレームやJavaScriptで取り込む
と言うこと?
あとはサーバを介すか全てクライアントで処理するかでも変わる。
現状WebブラウザのXSLTプロセッサの利用は現実的ではない。
161デフォルトの名無しさん
2009/01/22(木) 20:00:15 便乗質問しても良い?
XML+XSLT(サーバーサイド)がメインのサイトって、やっぱりテンプレートメインのサイトより少数派なんかな。
XML+XSLT(サーバーサイド)がメインのサイトって、やっぱりテンプレートメインのサイトより少数派なんかな。
162デフォルトの名無しさん
2009/01/22(木) 22:45:54 >>148
でもちょっとくらいそういう欲目はあったかもしれない。
未知構造の文書でも動的にnamespaceの参照先URLにアクセスして
きっちりオンザフライでバリデーションします!なんてエレガント!
俺って天才!
みたいな。
でもちょっとくらいそういう欲目はあったかもしれない。
未知構造の文書でも動的にnamespaceの参照先URLにアクセスして
きっちりオンザフライでバリデーションします!なんてエレガント!
俺って天才!
みたいな。
163デフォルトの名無しさん
2009/01/22(木) 22:56:19 >>162
ていうか、最初そういうものだと思ってスッゲー!って感動していた俺ガイル
ていうか、最初そういうものだと思ってスッゲー!って感動していた俺ガイル
164デフォルトの名無しさん
2009/01/23(金) 22:25:14 RubyのREXML(3.1.7.3)使っているんですが
こんなデータがあって
data1//----
<root>
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>
</root>
----//
data2//----
<root><elem>1</elem><elem>2</elem><elem>3</elem></root>
----//
こんなコードで動かすと
//----
require "rexml/document"
xmldata = REXML::Document.new(File.new("data.xml"))
for i in 1..3
puts(xmldata.elements["/root"].elements[i,"elem"])
puts(xmldata.elements["/root"].elements[i,"elem"].index_in_parent)
end
続く
こんなデータがあって
data1//----
<root>
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>
</root>
----//
data2//----
<root><elem>1</elem><elem>2</elem><elem>3</elem></root>
----//
こんなコードで動かすと
//----
require "rexml/document"
xmldata = REXML::Document.new(File.new("data.xml"))
for i in 1..3
puts(xmldata.elements["/root"].elements[i,"elem"])
puts(xmldata.elements["/root"].elements[i,"elem"].index_in_parent)
end
続く
165デフォルトの名無しさん
2009/01/23(金) 22:25:45 データ1での結果//----
<elem>1</elem>
2
<elem>2</elem>
4
<elem>3</elem>
6
----//
データ2での結果//----
<elem>1</elem>
1
<elem>2</elem>
2
<elem>3</elem>
3
----//
こんな結果になります。
改行を一要素として数えている?
これってバグですかね?
それとも自分がバグ?
<elem>1</elem>
2
<elem>2</elem>
4
<elem>3</elem>
6
----//
データ2での結果//----
<elem>1</elem>
1
<elem>2</elem>
2
<elem>3</elem>
3
----//
こんな結果になります。
改行を一要素として数えている?
これってバグですかね?
それとも自分がバグ?
166デフォルトの名無しさん
2009/01/23(金) 22:28:26 xmldata.elements["/root"].size
でもそれぞれ7と3が返っている
XMLの仕様?パーサの仕様?バグ?
どなたかおしえてー
でもそれぞれ7と3が返っている
XMLの仕様?パーサの仕様?バグ?
どなたかおしえてー
167デフォルトの名無しさん
2009/01/23(金) 22:47:23 改行がTEXTノードとして間に挟まっていると思われ。
xmldata.elements["/root"].elements.each {|e| p e}
とかで確認してみては。
xmldata.elements["/root"].elements.each {|e| p e}
とかで確認してみては。
168164
2009/01/23(金) 22:58:32 >>167
試してみました
結果は両方同じで以下のように表示されます
----
<elem> ... </>
<elem> ... </>
<elem> ... </>
----
CR+LFをLFやCRにしてみても同じでした
なぜだー
試してみました
結果は両方同じで以下のように表示されます
----
<elem> ... </>
<elem> ... </>
<elem> ... </>
----
CR+LFをLFやCRにしてみても同じでした
なぜだー
169デフォルトの名無しさん
2009/01/23(金) 23:10:26 index は要素だけじゃなくて全てのノードなのに対して
elements が要素しか返さないからじゃないのか?
elements が要素しか返さないからじゃないのか?
170164
2009/01/23(金) 23:21:13 要素名指定なしで、indexのみで表示してみました
for i in 1..3
puts(xmldata.elements["/root"].elements[i])
end
結果はまた両方同じで
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>
for i in 1..3
puts(xmldata.elements["/root"].elements[i])
end
結果はまた両方同じで
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>
171164
2009/01/23(金) 23:23:08 こんどはrootから直indexで
for i in 1..3
puts(xmldata.elements["/root"][i])
end
----
<elem>1</elem>
<elem>2</elem>
----
<elem>2</elem>
<elem>3</elem>
----
む、微妙な差が。
for i in 1..3
puts(xmldata.elements["/root"][i])
end
----
<elem>1</elem>
<elem>2</elem>
----
<elem>2</elem>
<elem>3</elem>
----
む、微妙な差が。
172デフォルトの名無しさん
2009/01/23(金) 23:27:04 もちついてレスを検証したほうがいいぞ
173164
2009/01/23(金) 23:28:36 for i in 0..3
でやったらこんな感じ
----
<elem>1</elem>
<elem>2</elem>
----
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>
----
index_in_parentはelements単位のindexじゃなくて、
parent[index]のindexを返すのか
で、これには何故か改行コードも一要素として数えられる、と
むぅ、なんか使いにくいぞ>index_in_parent
でやったらこんな感じ
----
<elem>1</elem>
<elem>2</elem>
----
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>
----
index_in_parentはelements単位のindexじゃなくて、
parent[index]のindexを返すのか
で、これには何故か改行コードも一要素として数えられる、と
むぅ、なんか使いにくいぞ>index_in_parent
174164
2009/01/23(金) 23:34:06 えーと、ていうことは、今着目してる"elem"elementsが
親要素の中の何番目の"elem"elementsなのかを
直接知る方法が無いってことかい?
とりあえずもうちょっと検証してみます
ヒントくれた人ありがとー
親要素の中の何番目の"elem"elementsなのかを
直接知る方法が無いってことかい?
とりあえずもうちょっと検証してみます
ヒントくれた人ありがとー
175デフォルトの名無しさん
2009/01/23(金) 23:47:35 うりゃ
for i in 1..3
puts(xmldata.elements["/root"].elements[i,"elem"])
e = xmldata.elements["/root"].elements[i,"elem"]
puts e.parent.elements.index(e) #ここ注目
end
index_in_parentはNodeクラスで定義されているので、
index_in_parentがelementだけではなくTEXTノードも
含めた全ての子Nodeの中での位置を指し示すのは
当然の仕様なんですよ。
なのでelementの並びの中での位置を知りたければ
親elementのelements配列中でのindexを求めれば
良いわけで、上記の解。
for i in 1..3
puts(xmldata.elements["/root"].elements[i,"elem"])
e = xmldata.elements["/root"].elements[i,"elem"]
puts e.parent.elements.index(e) #ここ注目
end
index_in_parentはNodeクラスで定義されているので、
index_in_parentがelementだけではなくTEXTノードも
含めた全ての子Nodeの中での位置を指し示すのは
当然の仕様なんですよ。
なのでelementの並びの中での位置を知りたければ
親elementのelements配列中でのindexを求めれば
良いわけで、上記の解。
177デフォルトの名無しさん
2009/01/25(日) 21:22:42 >>157
最近jQueryを弄っていたので試しにXML Viewerを作ってみようと
したら、案外めんどくさかった。
Tree表示のjQuery Pluginを使えば数行でサクッと出来るかもと
思ったけど、DOMの12のNodeタイプにそれぞれ対応した処理を
書かなければならなかったのが面倒。
最近jQueryを弄っていたので試しにXML Viewerを作ってみようと
したら、案外めんどくさかった。
Tree表示のjQuery Pluginを使えば数行でサクッと出来るかもと
思ったけど、DOMの12のNodeタイプにそれぞれ対応した処理を
書かなければならなかったのが面倒。
178デフォルトの名無しさん
2009/01/25(日) 21:24:10 以下のXMLをその下のXSLで変換してFireFoxで表示させようとしてます。
変換はFireFoxにやらせてます。
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="hoge.xsl" ?>
<books>
<logo>http://www2.2ch.net/2ch.html</logo>
</books>
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html><body>
<xsl:element name="img">
<xsl:attribute name="src">
<xsl:value-of select="logo" />
</xsl:attribute>
</xsl:element>
</body></html>
</xsl:template>
</xsl:stylesheet>
でもなにも表示されません。これって何か間違ってますでしょうか?
変換はFireFoxにやらせてます。
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="hoge.xsl" ?>
<books>
<logo>http://www2.2ch.net/2ch.html</logo>
</books>
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html><body>
<xsl:element name="img">
<xsl:attribute name="src">
<xsl:value-of select="logo" />
</xsl:attribute>
</xsl:element>
</body></html>
</xsl:template>
</xsl:stylesheet>
でもなにも表示されません。これって何か間違ってますでしょうか?
179デフォルトの名無しさん
2009/01/25(日) 21:52:40 >>178
画像じゃないじゃん
画像じゃないじゃん
180デフォルトの名無しさん
2009/01/25(日) 22:02:41 <xsl:value-of select="books/logo" />
181デフォルトの名無しさん
2009/01/25(日) 22:05:21 >>179
ありがとうございます。
そうか、と思って直してIEで表示させたら表示できました。
でもFirefoxではやっぱり何も表示されませんでした。
IEとFirefoxってXSLの動きが違うのでしょうか?
ありがとうございます。
そうか、と思って直してIEで表示させたら表示できました。
でもFirefoxではやっぱり何も表示されませんでした。
IEとFirefoxってXSLの動きが違うのでしょうか?
182デフォルトの名無しさん
2009/01/25(日) 22:08:08183デフォルトの名無しさん
2009/01/26(月) 09:34:23 Firefox3.0.5でローカルファイルのXMLでXSLでHTML出力させていますが
一階層上のXSLファイルを相対パスで指定するとXSLが適用されず
テキストのみの表示になります。
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../style.xsl"?>
同一のファイル構成で以下のブラウザでは問題なく表示できました。
IE7/Opera9.63/Safari3.2.1/Chrome1.0.154.43/Seamonkey1.1.14/Netscape9.0.0.5
Firefox3.1beta等でも試してみたところ3.05と同じです。
ただしWebにあげるとどのバージョンのFirefoxでも問題なく表示できます。
Geckoの問題?
一階層上のXSLファイルを相対パスで指定するとXSLが適用されず
テキストのみの表示になります。
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../style.xsl"?>
同一のファイル構成で以下のブラウザでは問題なく表示できました。
IE7/Opera9.63/Safari3.2.1/Chrome1.0.154.43/Seamonkey1.1.14/Netscape9.0.0.5
Firefox3.1beta等でも試してみたところ3.05と同じです。
ただしWebにあげるとどのバージョンのFirefoxでも問題なく表示できます。
Geckoの問題?
184デフォルトの名無しさん
2009/01/26(月) 11:57:32185デフォルトの名無しさん
2009/01/30(金) 02:50:30186デフォルトの名無しさん
2009/01/30(金) 07:47:26 ローカルだとなんかセキュリティがかかっちゃうとか?
187デフォルトの名無しさん
2009/01/30(金) 14:28:54 ローカルだとローカルにあるファイル参照できないよ。mozilla系は。doctypeでSYSTEM指定しないとだめだったはず。
188デフォルトの名無しさん
2009/02/05(木) 19:33:29 Win2008のイベントログをXMLDOMで読み込んで使いたいんですが、XPathクエリがうまく動きません。
何が悪いか見ていただけませんか。
コード(test.vbs)
--
Set dom = CreateObject("Microsoft.FreethreadedXMLDOM")
dom.async = False
dom.setProperty "SelectionLanguage", "XPath"
dom.load "event.xml"
strPath = "*[System/EventID=12012]"
Set colNodes = dom.documentElement.selectNodes(strPath)
WScript.Echo "nodes:" & colNodes.length
--
XML
--
<?xml version="1.0" encoding="SHIFT_JIS"?>
<root>
<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><EventID>12011</EventID></System></Event>
<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><EventID>12012</EventID></System></Event>
</root>
--
xmlns='http://schemas.microsoft.com/win/2004/08/events/event'がないとうまく動くのですが、xmlnsを指定している場合に
XPathクエリの指定方法が調べた限りで見つからなかったので。
何が悪いか見ていただけませんか。
コード(test.vbs)
--
Set dom = CreateObject("Microsoft.FreethreadedXMLDOM")
dom.async = False
dom.setProperty "SelectionLanguage", "XPath"
dom.load "event.xml"
strPath = "*[System/EventID=12012]"
Set colNodes = dom.documentElement.selectNodes(strPath)
WScript.Echo "nodes:" & colNodes.length
--
XML
--
<?xml version="1.0" encoding="SHIFT_JIS"?>
<root>
<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><EventID>12011</EventID></System></Event>
<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><EventID>12012</EventID></System></Event>
</root>
--
xmlns='http://schemas.microsoft.com/win/2004/08/events/event'がないとうまく動くのですが、xmlnsを指定している場合に
XPathクエリの指定方法が調べた限りで見つからなかったので。
189デフォルトの名無しさん
2009/02/06(金) 10:29:01 >>188
XPathではプレフィックスなしの要素名は名前空間なしと決まっているんだ。
MSXMLだと名前空間コンテキストを指定する方法があったはず。それでプ
レフィックス⇒名前空間の対応を指定して、XPath中ではプレフィックス
付きで書く。
XPathではプレフィックスなしの要素名は名前空間なしと決まっているんだ。
MSXMLだと名前空間コンテキストを指定する方法があったはず。それでプ
レフィックス⇒名前空間の対応を指定して、XPath中ではプレフィックス
付きで書く。
190188
2009/02/06(金) 11:29:45 回答ありがとうございます。
こんな感じですかね?
エラーは出ないけれどノードは認識しないので、まだ何かが足りない風味ですが。
----
Set dom = CreateObject("Microsoft.FreethreadedXMLDOM")
dom.async = False
dom.setProperty "SelectionLanguage", "XPath"
dom.setProperty "SelectionNamespaces", "xmlns:evt='http://schemas.microsoft.com/win/2004/08/events/event'"
dom.load "event.xml"
strPath = "/root/evt:Event[System/EventID=12012]"
Set colNodes = dom.documentElement.selectNodes(strPath)
WScript.Echo "nodes:" & colNodes.length
----
理解が足りてないようなので、もう少しぐぐってみます。
こんな感じですかね?
エラーは出ないけれどノードは認識しないので、まだ何かが足りない風味ですが。
----
Set dom = CreateObject("Microsoft.FreethreadedXMLDOM")
dom.async = False
dom.setProperty "SelectionLanguage", "XPath"
dom.setProperty "SelectionNamespaces", "xmlns:evt='http://schemas.microsoft.com/win/2004/08/events/event'"
dom.load "event.xml"
strPath = "/root/evt:Event[System/EventID=12012]"
Set colNodes = dom.documentElement.selectNodes(strPath)
WScript.Echo "nodes:" & colNodes.length
----
理解が足りてないようなので、もう少しぐぐってみます。
191188
2009/02/06(金) 11:34:08 連続で失礼します。
---
strPath = "/root/evt:Event[evt:System/evt:EventID=12012]"
---
でいいんですね。
うまく取得できるようになりました。
ちなみに、検索の[]内をwevtutil.exeに投げるXPathと同じにしたかったのですが、evt:Systemとかつけなくて済む方法はあったりしますか?
もしご存じであれば教えてください。
---
strPath = "/root/evt:Event[evt:System/evt:EventID=12012]"
---
でいいんですね。
うまく取得できるようになりました。
ちなみに、検索の[]内をwevtutil.exeに投げるXPathと同じにしたかったのですが、evt:Systemとかつけなくて済む方法はあったりしますか?
もしご存じであれば教えてください。
192デフォルトの名無しさん
2009/02/06(金) 19:33:09 /root/evt:Event/evt:System[evt:EventID=12012]/..
193188
2009/02/09(月) 14:10:02 書き方が悪かったですね、失礼しました。
wevtutilと同じように、System以下をプレフィックスなしで書きたかったのですが、仕様で無理みたいなので今回はこのまま進めようと思います。
回答ありがとうございました。
wevtutilと同じように、System以下をプレフィックスなしで書きたかったのですが、仕様で無理みたいなので今回はこのまま進めようと思います。
回答ありがとうございました。
194デフォルトの名無しさん
2009/02/10(火) 18:00:50 Xerces C++を使っています。
とあるアプリケーション(A)のモジュール(B)が返したXMLツリーを
Aで管理しているXML文書の子要素として取り込むという処理を行いたいのですが、
BからAが管理するXML文書にアクセスできないようにしたいと思っています。
AからBにドキュメントオブジェクトを渡さないようにして、
Bの内部でXMLツリーを作成したいのですが、どのようにしたらいいでしょうか?
AとBの間の受け渡しはXMLのテキストで行います。
Bの中でドキュメントを作成して、ルート以下をメモリ上にシリアライズして
それをコピーする方法が考えられるのですが、もう少しスマートな方法はないでしょうか?
とあるアプリケーション(A)のモジュール(B)が返したXMLツリーを
Aで管理しているXML文書の子要素として取り込むという処理を行いたいのですが、
BからAが管理するXML文書にアクセスできないようにしたいと思っています。
AからBにドキュメントオブジェクトを渡さないようにして、
Bの内部でXMLツリーを作成したいのですが、どのようにしたらいいでしょうか?
AとBの間の受け渡しはXMLのテキストで行います。
Bの中でドキュメントを作成して、ルート以下をメモリ上にシリアライズして
それをコピーする方法が考えられるのですが、もう少しスマートな方法はないでしょうか?
195デフォルトの名無しさん
2009/03/08(日) 10:39:12 XML の内容を比較するようなツールってありますかね?
XML のデータをツリーとしてみたときに、2つのツリーで異なるノードがあったとき
それを報告してくれるツールといいますか... あと XML のフォーマットの任意性
(改行やインデントの差、順序に寄らないノードのXMLでの出現順序等)を
ちゃんと考慮して、内容としての差のみ表示してくれるとうれしいのですが。
とりあえず linux でコマンドラインから使えたりすると非常にいいです。
が、Win や Mac 等の環境もあり、とにかく差分を表示してくれるようなソフトが
あるなら見てみたいなと思うので、ご紹介いただけると助かります。
XML のデータをツリーとしてみたときに、2つのツリーで異なるノードがあったとき
それを報告してくれるツールといいますか... あと XML のフォーマットの任意性
(改行やインデントの差、順序に寄らないノードのXMLでの出現順序等)を
ちゃんと考慮して、内容としての差のみ表示してくれるとうれしいのですが。
とりあえず linux でコマンドラインから使えたりすると非常にいいです。
が、Win や Mac 等の環境もあり、とにかく差分を表示してくれるようなソフトが
あるなら見てみたいなと思うので、ご紹介いただけると助かります。
196デフォルトの名無しさん
2009/03/08(日) 15:21:26 「xml diff」でググれ
197デフォルトの名無しさん
2009/03/11(水) 21:51:41 xmlstarletでselすると&とか数字とかに文字化けするんですが
どうしたらなおりますか?
どうしたらなおりますか?
198デフォルトの名無しさん
2009/03/12(木) 08:10:48 文字化け…?
199デフォルトの名無しさん
2009/03/12(木) 09:34:32 >>196
どうもありがとうございます。しかし何だか古い情報にしかヒットしない感が。
よほど需要が少ないのか、すでにソフトが枯れているのか...
とりあえず一つ一つ当たっていますが、もし個人的にお勧めなのとかあれば
教えてくださいますか?
どうもありがとうございます。しかし何だか古い情報にしかヒットしない感が。
よほど需要が少ないのか、すでにソフトが枯れているのか...
とりあえず一つ一つ当たっていますが、もし個人的にお勧めなのとかあれば
教えてくださいますか?
200デフォルトの名無しさん
2009/03/13(金) 15:09:08 XML Schemaについて質問なんですが。
実体参照を定義したいんですがどうやればいいかわかりません。
なお、すでにググってあります。
実体参照を定義したいんですがどうやればいいかわかりません。
なお、すでにググってあります。
201200
2009/03/13(金) 15:36:09 さらにググったらないとか…orz
かといって列挙が必要なのでDTDは不可能。
なんかいいスキーマ言語はないもんかね。
必要条件
実体参照をサポートするもの
列挙をサポートするもの
範囲指定が容易であればなおよい
もしDTDとXML Schemaの連携ができればそれで終わりなんですがね。
かといって列挙が必要なのでDTDは不可能。
なんかいいスキーマ言語はないもんかね。
必要条件
実体参照をサポートするもの
列挙をサポートするもの
範囲指定が容易であればなおよい
もしDTDとXML Schemaの連携ができればそれで終わりなんですがね。
202デフォルトの名無しさん
2009/03/13(金) 21:33:33203デフォルトの名無しさん
2009/03/14(土) 21:10:47204デフォルトの名無しさん
2009/03/16(月) 02:38:08 そうかなあ
205デフォルトの名無しさん
2009/03/16(月) 02:39:39 そうだよ。規格でそう決まってる
206デフォルトの名無しさん
2009/03/16(月) 10:58:33207デフォルトの名無しさん
2009/03/17(火) 03:50:15 何の説明にもなってないんだが……
208デフォルトの名無しさん
2009/03/26(木) 00:38:08 Microsoft.XMLDOMでProcessing Instructionの要素を取得する方法と
Processing Instructionの属性の値を読み書き方法を教えてください。
<?xml version="1.0" encoding="SHIFT_JIS"?>
<root>
<?aaa c="0" ?>
<eee g="0"/>
</root>
というようなXMLが有った場合、
eee要素の取得は XmlDom.documentElement.selectSingleNode("eee")
属性gの値の書き換えは、.Attributes.getNamedItem("g").text = "1"
で出来ますが、これと同じようにaaaのProcessing Instruction要素、
つまり<?aaa c="0" ?>を取得し、属性cの値を読み書きしたいのです。
この場合なら要素の取得は XmlDom.documentElement.childNodes(0)
で出来ますが、インデックス指定ではなaaaの名前指定で取得する方法をお願いします。
Microsoft.XMLDOMのバージョンは6.0です。
Processing Instructionの属性の値を読み書き方法を教えてください。
<?xml version="1.0" encoding="SHIFT_JIS"?>
<root>
<?aaa c="0" ?>
<eee g="0"/>
</root>
というようなXMLが有った場合、
eee要素の取得は XmlDom.documentElement.selectSingleNode("eee")
属性gの値の書き換えは、.Attributes.getNamedItem("g").text = "1"
で出来ますが、これと同じようにaaaのProcessing Instruction要素、
つまり<?aaa c="0" ?>を取得し、属性cの値を読み書きしたいのです。
この場合なら要素の取得は XmlDom.documentElement.childNodes(0)
で出来ますが、インデックス指定ではなaaaの名前指定で取得する方法をお願いします。
Microsoft.XMLDOMのバージョンは6.0です。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★12 [蚤の市★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- 不倫疑惑の永野芽郁さん、CM削除ドミノの違約金“やはり発生は免れない”可能性 約10億円になる見込み、本人は全額支払う覚悟 [牛丼★]
- 旧姓使用拡大に連合会長が反発 「何の説明もない。選択的夫婦別氏制度導入を」 男女共同参画会議 ★2 [ぐれ★]
- 開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 ★2 [ぐれ★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 【悲報】中学受験、意味がなかった…「中学受験をやっても大部分の子供は無勉で入れるMARCH地方国立大に行くのが精一杯です [483447288]
- ジムでインターバルの時にウロウロ歩くやつなんなの?
- レイプはとっても気持ちがいい
- 【悲報】ドイツ人「なんで日本人って自炊するの?出来合の惣菜や冷食食った方が楽でコスパいいやん。そんなんだから低生産性なんだよ [786648259]
- 大阪行くわよーーーッ!!!
- 近所の騒音おじさんが俺にだけ優しくしてくる
