• 締切済み

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などがそうのような機能を内包してたりする?) 少し調べてみた限りでは無さそうに感じたのですが 処理としてはよくありそうな事なのでお聞きしてみました。

みんなの回答

回答No.3

jsontoxmlでググってみると、サンプルコードやjQueryプラグインなどがありそうです。 http://www.google.com/webhp?hl=en#hl=en&source=hp&q=jsontoxml

回答No.2

サーバーから取得した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)
回答No.1

処理としてはよくありそうな事なのでお聞きしてみました。 ==>全然ありそうじゃ無いですよ。 javascriptは入出力機能はありません。  たとええXMLオブジェクトを作っても、テキストとして表示したり、 サーバーにテキストデータとしてPOSTはできますが...  サーバー側のPHPとかで作った方がよっぽど幸せになります。 ※サーバーから取得したXMLをパースして、HTMLのDOM等に加えたり、 javascriptのJSONにするようなツールはいっぱい見つかるでしょうが....

nisecuroro
質問者

補足

>==>全然ありそうじゃ無いですよ。 >javascriptは入出力機能はありません。 何に対しての入出力のことを指しているのでしょうか? データの取得にXMLを利用している以上 JavaScript側で編集したデータをXMLでサーバに送り返したくなるのは そう不自然な発想ではない気がします。 Google Docやカレンダーのようなアプリは JavaScript側で編集したデータをサーバに書き戻しているはずなので 「ありそうでは無い」ことの根拠がよく分かりません。 >サーバー側のPHPとかで作った方がよっぽど幸せになります。 これはJavaScript側でベタテキストとしてサーバーに送って XMLに整形するのはサーバーサイドのプログラムに任せるということですよね? それも一つの解ではあると思いますが 汎用フォーマットに整形して送ってくれればサーバーサイドは 既存のパーサーに食わせるだけで済むのに対して 妙なフォーマットのテキストをパースする処理を自前で実装することが 何故幸せなのか理解できません。 JSONなら性質上、JavaScriptから生成するのは容易いので サーバーサイドでJSON→XMLに変換処理くらいを書けばいいのかもしれませんが。 その辺りをもう少し詳しくお聞かせ願えないでしょうか

関連するQ&A