- - PR -
複数のXMLをひとつにする
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-04-01 11:01
複数のXMLをXSLTを用いてひとつにするということは
可能なのでしょうか? いろいろ探してみたのですがうまく見つからなくて。 できないってことですかね。 | ||||||||||||||||||||
|
投稿日時: 2003-04-01 11:37
自己レスです。
<xsl:copy-of select="document('test1.xml')"/> <xsl:copy-of select="document('test2.xml')"/> <xsl:copy-of select="document('test3.xml')"/> でできることがわかりました。 | ||||||||||||||||||||
|
投稿日時: 2003-04-04 11:45
ども、ほむらです。
便乗で僕からも質問させてください。。 僕の場合は、出来ないのでなくスマートなやり方がないかなという 程度なのですが・・・・・ ------------------ 内容は、XMLノードの補完について?です 実際には微妙に違いますが・・・
としていて後は、使うときに
見たいな形にしています。 僕の予定としてはdata.xmlデータがあればノード数は2個になって 順序は1.data.xml 2.default.xml なければノードは1個になって 1.default.xml のみ のつもりです。。。 始めの小さいうち(実験段階)はよかったのですが オーバーライドもしてしまおうと考えたら 莫大に大きくなってしまって。。。。見難くなってしまいました。
と書けるようになるよい方法はありませんか? 一言で表すと2つの重複するノードを優先順位をつけて 一つにまとめたいということです^^;;;; そんな無茶な機能はやっぱりないでしょうか・・・・・ ---------------------------------------- ---- default.xml ----
---- data.xml ----
@id ******* 各schedule固有の識別キー @enable *** true以外のときはコメント行として出力 @override * trueのとき重複するノードは変更・しない場合は追加(ノード補完) *********** true以外のとき 上書き | ||||||||||||||||||||
|
投稿日時: 2003-04-04 16:11
XML の(2本マージのシーケンシャル)更新のような雰囲気
SORTしてあるならSAXのほうがデータ量的にはいいけど XMLをDBに投げ込んでSQLとかも簡単なのでは、なぜXSLT (XMLupdate とかは XQuery で検討中) <xsl:for-each select="(document('data.xml')|document('default.xml'))/command/schedule"> <xsl:sort select="@id"/> <xsl:copy-of select="."/><!-- とりあえず混ざります --> まとめは 重複(どの範囲まで考えるか)削除などの例を参考に書きます。 http://qa.xml.gr.jp/data/xsl/files/0026.xml 1段より2段XSLTのほうがわかりやすいとおもいます、 (XMLパイプライン処理) 現XSLT機能では人々を混乱させるソースになるかもしれません。 検索すると XMLのUPDATEをするXSLTソースは発見できるかも (ヒント:再帰処理、XPath軸) [ メッセージ編集済み 編集者: MMX 編集日時 2003-04-11 10:55 ] | ||||||||||||||||||||
|
投稿日時: 2003-04-11 15:03
ども、ほむらです。
色々と調べていたら遅くなってしまいました。 もうわけありません。(気が付けば一週間もたっているんですね^^;;;; ---------- DBを使用しないのはすべての処理をクライアント単体で できるようにするためです。 (本格的に使っているのはホームページなんです) XQuery。。かなり便利そうな予感です。実装されるのが待ちどうしいです。 XSLT2.0も一緒に実装されると思うし・・・ 今のところはSQLで言うところの単純なSELECT文程度のことは できるみたいですね。>XQuery # 本音を言うとどうせなら普通にSQLを拡張した形にしてほしかったなぁ。。。 # などと思ってしまいます。(SQL+XPathとか) UPDATE処理に関することは見つけられませんでした^^;;;;; 重複したノードを削除するサンプル試してみたのですがどうやら 同じドキュメント内になければ動作してくれないみたいです。 XPathの仕様のせいでしょうか。。。 やっぱり、フィルタを使用してちまちまとやるしかないみたいですね。 ところで、<xsl:copy-of select=""/> でノードが混ざると言う話なのですが ここで混ざったデータを展開するにはどうすればいいのでしょうか? エイリアスを使用してあげればよいんですか? いろいろ方法を考えてみたのですが、結局わかりませんでした;;; そもそも、copyとかcopy-of はHTMLのpreと同じ程度にしか 思っていなかったもので・・・・・ [ メッセージ編集済み 編集者: ほむら 編集日時 2003-04-11 15:23 ] | ||||||||||||||||||||
|
投稿日時: 2003-04-14 11:09
データをこねるにはXSLTのみでは適していないと(みなさん)言います
やりますか?{XSL有害論がぶりかえすかも} <xsl:variable name="temp1"><tmp> で <xsl:for-each を囲むと「リザルトセット」を変数に収容できます この変数を再帰処理でキザんで頭から処理します。 COBOLの磁気テープのデータ処理と同じ【発想】の操作ができます。 JavaScriptとの合せ技とか、DOM+XPath とか、クライアント処理の 【発想】はいろいろあります。 | ||||||||||||||||||||
|
投稿日時: 2003-04-14 17:34
ども。ほむらです。。
-------
まぁ、僕としてはただの雛型程度にしか認識していないので データをこねる分野で苦手なのは仕方ないかななんて思っています。 XSL有害論てどんなものなのでしょうか・・・ ちょっと検索してみたのですけどでてきませんでした。(単語だけのページはありましたが・・) よかったら、別スレとかで概要とかリンク教えてもらえると勉強になります^^;;;;
DOMは一応試みてみたんです。ちょっとノードセットがうまく作れなくて 挫折してしまったのですが。。。 これを機にもう一度挑戦してみようかなと思っています。 #(BBコード 編集ついでに追加) # でも、よく考えたらノードを走査させる場合ならSAXのほうが # 適しているんですね。内容を読んだだけですが。。。 [ メッセージ編集済み 編集者: ほむら 編集日時 2003-04-16 10:06 ] | ||||||||||||||||||||
|
投稿日時: 2003-04-15 10:25
http://www.xml.com の記事で1,2本の記憶しかありません
XSL有害論:XSLT初期の新規言語に対する、ある人々の評価です。 ▲XSLTは簡易な構造操作を目的に設計された、が、買いかぶられて 深いデータ処理を書く人々も現れた、 再帰やmodeや多量のtemplateや長大なXPath式を駆使して。 パターンマッチ、再帰や関数型言語でくすぶっていた人々が ここぞとばかり熟練の技でXSLTを書いたりした。(恐れ入ります) それに対する反発は強かった、 既存の言語とAPIでも書けるじゃないか、とかXSLTの行数の水膨れ感で 書きにくいとか、パターンマッチ駆動は馴染めないとか、 食わず嫌いの論も多かった(アメリカでも日本でも)。 さて、XSLTでUPDATE を書き上げたとしても、エラー処理とか 様々な機能はどうするかとか、問題はつきないです。 「本当は(リッチクライアント)のメモリDBを要求」 なのだから。XSLTをいじめるのもいいが 「そう言っても、最近大ヒットした言語です」 次の言語はXQuaryでしょう。XSLTの経験があるので仕上がりを期待してます。 --------- 後日の追加 ------ Web-based XML Editing with W3C XML Schema and XSLT http://www.xml.com/lpt/a/2003/04/30/editing.html これを、読んでも更新はservletで行って XSLT ではありません。 直接XMLのデータ操作といるより、メッセージ表現形はXMLという感じです。 ---------- さらに追加 ---------- The Document is the Database http://www.xml.com/lpt/a/2003/07/09/udell.html Webサーバーのスクリプトが主役ですが、XML の柔軟性の特徴が出ている かも。スッキリとは見えないが。メモリDBのLIBとどちらが使いやすいか? [ メッセージ編集済み 編集者: MMX 編集日時 2003-07-15 11:52 ] |