2

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 がドキュメントを再フォーマットしているという問題もあります。
これを止める方法はありますか?

4

2 に答える 2

0

引用符について: バージョン 3.1.7.3 では、エレメントでコンテキスト cattr_accessor を使用できます。変更ログ:

http://www.germane-software.com/software/rexml/release.html (動的ページ)

于 2009-08-14T10:26:38.697 に答える
0

見る

RubyはXMLで一重引用符を二重引用符に変換します

あなたの質問に答えるもの

于 2011-04-07T23:46:17.310 に答える