Re: [問題] XML Builder 輸出的問題

看板Ruby作者 (godfat 真常)時間17年前 (2007/08/28 20:34), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《ericyu (Eric)》之銘言: : 環境: : Ruby 1.8.6, RoR 1.2.3 : 狀況: : 使用 builder 輸出 XML 時, 文字會被 escape. : 如: &#947;&#955;&#974;&#963;&#963;&#945; : 問題似乎是在 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
Thanks :P
08/28 20:42, 1F

08/29 09:54, , 2F
else 後面我改成 n.chr
08/29 09:54, 2F
文章代碼(AID): #16r1P4wz (Ruby)
討論串 (同標題文章)
文章代碼(AID): #16r1P4wz (Ruby)