论坛首页 编程语言技术论坛

像操作ActiveRecord一样操作XML

浏览 6405 次
该帖已经被评为良好帖
作者 正文
   发表时间:2009-03-11  
liuqiang,你好,看了你关于ROXML的介绍之后,下载试用,发现ROXML对中文的支持不好,to_xml出来的结果都是乱码,不知你遇到没有,请问如何解决?
0 请登录后投票
   发表时间:2009-03-11  
devercn 写道
liuqiang,你好,看了你关于ROXML的介绍之后,下载试用,发现ROXML对中文的支持不好,to_xml出来的结果都是乱码,不知你遇到没有,请问如何解决?


require "roxml"
module ROXML
  class XMLAttributeRef < XMLRef # :nodoc:
  private
    # Updates the attribute in the given XML block to
    # the value provided.
    def write_xml(xml, value)
      xml.attributes[name] = value.to_s
    end
  end

  class XMLTextRef < XMLRef # :nodoc:
    delegate :cdata?, :content?, :name?, :to =>pts
  private
    def add(dest, value)
      if cdata?
        dest.child_add(XML::Node.new_cdata(value.to_s))
      else
        dest.content = value.to_s
      end
    end
  end
end


另外
1、在你代码中加 $KCODE = 'utf8'

2、打开保存xml时加encoding

doc.save("library.xml", :encoding =>  LibXML::XML::Encoding::UTF_8)

doc = LibXML::XML::Document.file("library.xml", :encoding =>  LibXML::XML::Encoding::UTF_8)
lib = Library.from_xml(doc)


0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics