Проблемы с форматированием REXML - PullRequest
2 голосов
/ 07 мая 2009

Я использую 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 добавлял одинарные кавычки вместо двойных. Я нашел следующее через Google:

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

У меня также проблема в том, что REXML переформатирует документ.
Есть ли способы остановить это?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2011

см

Ruby конвертирует одинарные кавычки в двойные в XML

который отвечает на ваш вопрос

0 голосов
/ 14 августа 2009

О кавычках: версия 3.1.7.3 позволяет вам использовать контекст cattr_accessor для Элемента. Changelog:

http://www.germane -software.com / software / rexml / release.html (динамическая страница)

...