2012-01-04 7 views
0

ブラウザ用にHTMLでXML ajaxレスポンスを表示したいとします。しかし、私が必要とするのは、表示されている実際のXML自体です。つまり、要素を含むツリー全体と、ノードのコンテンツだけではないコンテンツです。実際のxmlをノードとしてhtmlとして表示しますが、ブラウザに便利です。

だから私は、XMLは、ブラウザの例として表示させたい:

<element>content</element> 
    <element2>niijojoi</element2> 
    <element2>niijojoi</element2> 
    <element2>niijojoi</element2> 
//etc more nested elements some with atrributes etc 

私はテキストを表示していましたが、誰もが単にXML出力にそれを横断XSLスタイルシートを持っていないスタイルシートを持っていますなどのブラウザは、インデントなど

おかげ

答えて

0

これは、ブラウザによって自動的に実行されています。私は、ファイルのtest.xmlを作成し、その中にこれを入れている場合たとえば、:

<a> 
    <element>content</element> 
    <element1> 
    <element2>niijojoi</element2> 
    <element2>niijojoi</element2> 
    <element2>niijojoi</element2> 
    </element1> 
</a> 

とGoogle Chromeでそれを開くと、それがインデントとXMLの階層を示しています。

+0

。しかし、これはあなたが言うように、私たちはブラウザでファイルを開きます。私が必要とするのは、Webページそのものの一部としてXMLを表示することです。言い換えれば、他のWeb HTMLコンテンツと一緒にテキストの断片を表示することです。この場合のブラウザは、混乱してタグがどうなっているのかわからないので、xmlをレンダリングできません。これはすべてのブラウザに当てはまります。 – user983022

1

XMLをAjax経由で取得している場合は、単に結果をtextareaに入力し、必要に応じてテキストエリアをスタイル設定します。あなたがしなければならないすべては<の文字を置き換えることで、(<pre>要素が理にかなって)あなたがAJAX経由でXMLを取得し、ページ上の要素に注入したいと仮定すると、

textarea { 
 
    background: #eee; 
 
    width: 500px; 
 
    height: 200px; 
 
}
<textarea> 
 
    
 
    <note> 
 
    <to>Tove</to> 
 
    <from>Jani</from> 
 
    <heading>Reminder</heading> 
 
    <body>Don't forget me this weekend!</body> 
 
    </note> 
 
    
 
</textarea>

+0

しかし、これは私のxmlとインデントを維持するようですか??? – user983022

1

&lt;エンティティと<pre>要素のinnerHTMLにコンテンツを注入する前に:はい、あなたが正しいです

// "result" is the data from the AJAX request. 
$('#xml').innerHTML = result.replace('<', '&lt;'); 
関連する問題