Re: [問題] XML Builder 輸出的問題
※ 引述《ericyu (Eric)》之銘言:
: 環境:
: Ruby 1.8.6, RoR 1.2.3
: 狀況:
: 使用 builder 輸出 XML 時, 文字會被 escape.
: 如: γλώσσα
: 問題似乎是在 buidler lib 中的 xchar.rb 與 to_xs,
: 但是對 Ruby 不很熟, 不知道怎麼改.. orz
: 不知道有人解決過了嗎? 或者是換別套 XML lib 比較好呢?
: 附錄:
: Builder for Markup: http://builder.rubyforge.org/
我翻了一下 xchar.rb, 看到了 Fixnum#xchr,
覺得他是在那裡把所有非 ascii 的 character 都 escape 掉,
我不知道要怎麼做可以保證正確且效率良好,不過亂試了一下,
可以做個白痴的 monkey patch:
require 'rubygems'
require 'builder'
class Fixnum
def xchr
n = XChar::CP1252[self] || self
case n when *XChar::VALID
XChar::PREDEFINED[n] or (n<128 ? n.chr : [n].pack('U'))
# 表示 UTF-8
else
'*'
end
end
end
builder = Builder::XmlMarkup.new
xml = builder.person { |b| b.name("大家來寫 ruby XD"); b.phone("555-1234") }
puts xml
# <person><name>大家來寫 ruby XD</name><phone>555-1234</phone></person>
會不會有什麼問題不是很確定,但是測試上可用 XD
--
#!/usr/bin/ruby [露比] /Programming (Kn|N)ight/ 看板《Ruby》
# if a dog nailed extra legs that http://www.ptt.cc/bbs/Ruby/index.html
# walks like an octopus, and Welcome ~Ruby@ptt~
# talks like an octopus, then ◢█◣ http://www.ruby-lang.org/
# we are happy to treat it as █ http://www.ruby-doc.org/
# if it were an octopus. ◥ ◤ http://www.rubyforge.org/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.28.18
→
08/28 20:42, , 1F
08/28 20:42, 1F
→
08/29 09:54, , 2F
08/29 09:54, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章