- 締切済み
JavaScript側でのXML作成の方法
JavaScript側でのXML作成の方法 Ajax開発の経験は始めてなので勝手がわかっていないのですが やりたい事はサーバー側からXMLデータを取得して JavaScript側でXMLを編集してサーバーに書き戻すような事がしたいのです。 このような場合、DOMツリーをXMLファイルにシリアライズするには IEだとActiveXObject("Microsoft.XMLDOM")、FireFoxだとXMLSerializer()を使うと いったようにブラウザごとに処理を分けねばなりません。 これは面倒なのであまりやりたくありません。 あとはベタなテキストとして var xml = "<?xml version='1.0' encoding='utf-8'?>" + "<root><element>test</element></root>" と書いていくくらいしか思いつかないのですが ブラウザ間ごとの違いを吸収してくれる XML編集用の便利なJavaScriptライブラリなどは存在したりするものでしょうか? (jQueryなどがそうのような機能を内包してたりする?) 少し調べてみた限りでは無さそうに感じたのですが 処理としてはよくありそうな事なのでお聞きしてみました。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
jsontoxmlでググってみると、サンプルコードやjQueryプラグインなどがありそうです。 http://www.google.com/webhp?hl=en#hl=en&source=hp&q=jsontoxml
- nekomikekamo
- ベストアンサー率73% (71/97)
サーバーから取得したxmlをそのままjQueryに食わせればOK? jQueryのAJAX通信success時に下記のような関数を割り当て。 var ajax_success = function(data, dataType){ //data(xml)の解析結果を取得する。 var xml = jQuery(data); //<id>test</id>を<id>neko</id>に変更する。 xml.find("id").each(function(){ jQuery(this).text("neko"); }); //xml.html()で変更したxmlをテキストで取得する。 alert(xml.html());//ためしに表示 //サーバーに再度送る場合には、xml.html()で取得したテキストをPOST。 };
- yyr446
- ベストアンサー率65% (870/1330)
処理としてはよくありそうな事なのでお聞きしてみました。 ==>全然ありそうじゃ無いですよ。 javascriptは入出力機能はありません。 たとええXMLオブジェクトを作っても、テキストとして表示したり、 サーバーにテキストデータとしてPOSTはできますが... サーバー側のPHPとかで作った方がよっぽど幸せになります。 ※サーバーから取得したXMLをパースして、HTMLのDOM等に加えたり、 javascriptのJSONにするようなツールはいっぱい見つかるでしょうが....
補足
>==>全然ありそうじゃ無いですよ。 >javascriptは入出力機能はありません。 何に対しての入出力のことを指しているのでしょうか? データの取得にXMLを利用している以上 JavaScript側で編集したデータをXMLでサーバに送り返したくなるのは そう不自然な発想ではない気がします。 Google Docやカレンダーのようなアプリは JavaScript側で編集したデータをサーバに書き戻しているはずなので 「ありそうでは無い」ことの根拠がよく分かりません。 >サーバー側のPHPとかで作った方がよっぽど幸せになります。 これはJavaScript側でベタテキストとしてサーバーに送って XMLに整形するのはサーバーサイドのプログラムに任せるということですよね? それも一つの解ではあると思いますが 汎用フォーマットに整形して送ってくれればサーバーサイドは 既存のパーサーに食わせるだけで済むのに対して 妙なフォーマットのテキストをパースする処理を自前で実装することが 何故幸せなのか理解できません。 JSONなら性質上、JavaScriptから生成するのは容易いので サーバーサイドでJSON→XMLに変換処理くらいを書けばいいのかもしれませんが。 その辺りをもう少し詳しくお聞かせ願えないでしょうか