2

Rails アプリで、XML ファイルのコンテンツをビューの部分テンプレートに表示しようとしています。テキストデータや特定のノードだけでなく、XML ファイル全体の実際のマークアップ (タグ、インデントで適切にフォーマットされたものなど) を表示したいと考えています。

XML ファイルは別のサーバーにあるため、まずファイルを取得する必要があります。これまでの私のアプローチは、タグを表示しますが、フォーマットはしません。つまり、途切れのない 1 行で表示するだけです。

私のコントローラーで:

@xml_file_path = 'some file path'
@response = Typhoeus::Request.get(@xml_file_path)

そして、ビュー テンプレートで:

<%= render :text => @response.body, :content_type => 'application/xml' %>

これにより、次のように XML が 1 行で表示されます。

<mods:mods><mods:physicalDescription<mods:internetMediaType>image/jpeg</mods:internetMediaType></mods:physicalDescription></mods:mods>

しかし、次のように、改行やインデントなどでユーザーに表示したい:

<mods:mods>
  <mods:physicalDescription>
    <mods:internetMediaType>image/jpeg</mods:internetMediaType>
  </mods:physicalDescription>
</mods:mods>

どうすればこれを達成できますか? ここで「 」は正しいアプローチではないと考えていrender :textますが、何が良いのかわかりません。アドバイスをいただければ幸いです。私はRailsにかなり慣れていません。

前もって感謝します!

4

1 に答える 1

0

この質問はあなたの質問と非常に似ています: How to beautify xml code in rails application

REXML を使用して XML データの文字列を作成し、'pretty printing' パラメーターを使用してそれを書き込むことができます。<pre>次に、ビューのタグで文字列をラップします。

于 2013-06-13T18:58:43.717 に答える