REXML格式化问题

时间:2009-05-07 10:42:50

标签: ruby rexml

我正在使用REXML编辑xml文件,但在格式化方面遇到了困难。

我原来的代码看起来像这样:

  file = File.new( destination)
  doc = REXML::Document.new file                         

  doc.elements.each("configuration/continuity2") do |element| 
    element.attributes["islive"]  =  "true"
    element.attributes["pagetitle"]  =  "#{@client.page_title}"
    element.attributes["clientname"]  =  "#{@client.name}"
  end

  doc.elements.each("configuration/continuity2/plans") do |element| 
    element.attributes["storebasedir"]  =  "#{@client.store_dir}"
  end

我首先必须添加以下代码,因为REXML添加单引号而不是双引号。我通过谷歌找到了以下内容:

  REXML::Attribute.class_eval( %q^
    def to_string
      %Q[#@expanded_name="#{to_s().gsub(/"/, '"')}"]
    end
  ^ ) 

我还有一个问题,即REXML正在重新格式化文档 有办法阻止这个吗?

2 个答案:

答案 0 :(得分:0)

关于引号:版本3.1.7.3允许您在Element上使用上下文cattr_accessor。更新日志:

http://www.germane-software.com/software/rexml/release.html(动态页面)

答案 1 :(得分:0)