2011-02-25 10 views
0

私の問題は次のとおりです: 私のjavascriptでは、私はサーバーからXMLドキュメントを読み込みます。howtoはjavascriptでXMLDocumentオブジェクトを表示しますか?

var xmlDom = document.implementation.createDocument("","",null); 
xmlDom.async=false; 
xmlDom.load("init.xml"); 

ユーザーは、表示されたWebページのさまざまなフォーム要素を編集することによってこのXML文書を変更できます。終了したら、新しいブラウザタブを開き、そこに変更されたxmlを表示して、ユーザが保存できるようにしたいと思います。問題は、xmlDocumentをサーバーに送信して戻すことなくこれを行う方法です。私の現在のハックはページに何も表示しませんが、少なくともページソースにxmlを表示します。

xmlWindow = window.open(""); 
    xmlWindow.document.open("text/xml"); 
    xmlWindow.document.write(serializer.serializeToString(xmlDom)); 
    xmlWindow.document.close(); 
    xmlWindow.focus(); 

これを正しく行う方法はありますか?

答えて

1

最後に、私が望むものを得る方法を見つけました(少なくとも非ブラウザの場合)。私が使用しているのは、XML文書をリンクとして提示することを可能にするいわゆるDataUriです。リンクをクリックすると、ブラウザーはサーバーからデータを読み込むかのようにデータを処理します。たとえば、xsl-スタイルシートが処理されます。 ここには私が使っている(jQuery)コードがあります:

$( '#xmllink')。attr( 'href'、 'data:text/xml、' + xml2Str(xmlDom).replace GI、「'」));。

機能xml2strは、文字列にXMLドキュメントをシリアライズ

1

XMLを表示するには、HTMLエンコードする必要があります。 <を<に、>を>などにしてください。preタグで囲むか、document.createTextNode(data)のデータとして入力してください。

また、新しいウィンドウでドキュメント内にテキスト領域を作成し、XML文字列をテキスト領域に配置することもできます。

詳細情報in this SO question

+0

権利、それがスタートだけど、私が実際に持っているのが好き、私はjsのオブジェクトとして持つXMLがちょうど処理されることです。そのURLをブラウザのURLバーに入力することによって読み込まれたxmlファイルのようなものです。 – user306708

関連する問題