質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Q&A

2回答

5244閲覧

xml形式でブラウザに表示

退会済みユーザー

退会済みユーザー

総合スコア0

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

0グッド

2クリップ

投稿2015/09/29 14:39

編集2022/01/12 10:55

以下の様にXML形式でブラウザに表示させたい場合は、ソースをどのように修正すればよいでしょうか。
なお、現在はブラウザにABCだけ表示される状態です。
また、print "Content-type: text/html\n\n"の部分は、単純にtext/xml\n\nに変えれば良いのでしょうか?


【ブラウザへ出力したいxml】

<?xml version='1.0' encoding='UTF-8'?> 

  <val>ABC</val> 

【ソース】
#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"

require 'rexml/document'

 #変数
val= ABC

doc = REXML::Document.new

doc << REXML::XMLDecl.new('1.0', 'UTF-8')

feed = doc.add_element("val").add_text("#{val}")

doc.write STDOUT

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

XMLをXMLとして認識するためのMIME Typeは"application/xml"になります。
"Content-type: application/xml\n\n"にしてみてください。
ただし、ブラウザによって、XMLだけのファイルをどう表示するかは異なるので、ご注意ください。

投稿2015/09/30 20:43

raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

この程度でしたら、gemを使わないでカーネルだけで作れちゃいますよ。
以下のようなコードを作ってみました。

ruby

1class SetXML 2 def initialize() 3 text = "" 4 # カギカッコを修正します。 5 text += fixKakko("<?xml version='1.0' encoding='UTF-8'?>") 6 # 改行コードを加えます。 7 text += addKaigyo(text) 8 # <val>ABC</val> のような形を作ります。 9 text += addElement("val", "ABC") 10 File.write ("output.html", s) 11 end 12 13 def addElement(element, val) 14 text = "<"+element+">"+val+"</"+element+">" 15 fixKakko(text) 16 addKaigyou(text) 17 return text 18 end 19 20 def fixKakko(text) 21 # カギカッコは直接HTMLに書き込めないので、エスケープシーケンスに変換します。 22 text = text.gsub(/</, '&lt;') 23 text = text.gsub(/>/, '&gt;') 24 return text 25 end 26 27 def addKaigyou(text) 28 text += fixKakko("</br>") 29 return text 30 end 31end 32SetXML.new()

で、実行するとこんな感じのoutput.htmlが出力されます。

html

1<?xml version='1.0' encoding='UTF-8'?></br> 2<val>ABC</val></br>

投稿2015/09/30 13:43

SKYYFISH

総合スコア654

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問