アプリ版:「スタンプのみでお礼する」機能のリリースについて

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などがそうのような機能を内包してたりする?)

少し調べてみた限りでは無さそうに感じたのですが
処理としてはよくありそうな事なのでお聞きしてみました。

A 回答 (3件)

jsontoxmlでググってみると、サンプルコードやjQueryプラグインなどがありそうです。



http://www.google.com/webhp?hl=en#hl=en&source=h …
    • good
    • 0

サーバーから取得した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。
};
    • good
    • 0

処理としてはよくありそうな事なのでお聞きしてみました。



==>全然ありそうじゃ無いですよ。
javascriptは入出力機能はありません。

 たとええXMLオブジェクトを作っても、テキストとして表示したり、
サーバーにテキストデータとしてPOSTはできますが...

 サーバー側のPHPとかで作った方がよっぽど幸せになります。

※サーバーから取得したXMLをパースして、HTMLのDOM等に加えたり、
javascriptのJSONにするようなツールはいっぱい見つかるでしょうが....

この回答への補足

>==>全然ありそうじゃ無いですよ。
>javascriptは入出力機能はありません。
何に対しての入出力のことを指しているのでしょうか?

データの取得にXMLを利用している以上
JavaScript側で編集したデータをXMLでサーバに送り返したくなるのは
そう不自然な発想ではない気がします。

Google Docやカレンダーのようなアプリは
JavaScript側で編集したデータをサーバに書き戻しているはずなので
「ありそうでは無い」ことの根拠がよく分かりません。

>サーバー側のPHPとかで作った方がよっぽど幸せになります。
これはJavaScript側でベタテキストとしてサーバーに送って
XMLに整形するのはサーバーサイドのプログラムに任せるということですよね?

それも一つの解ではあると思いますが
汎用フォーマットに整形して送ってくれればサーバーサイドは
既存のパーサーに食わせるだけで済むのに対して
妙なフォーマットのテキストをパースする処理を自前で実装することが
何故幸せなのか理解できません。

JSONなら性質上、JavaScriptから生成するのは容易いので
サーバーサイドでJSON→XMLに変換処理くらいを書けばいいのかもしれませんが。

その辺りをもう少し詳しくお聞かせ願えないでしょうか

補足日時:2010/06/11 13:57
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!