使用大写字母生成XML根目录?

时间:2013-03-05 15:59:47

标签: ruby xml

我正在使用xml/mapping库,以及我如何生成XML:

xml = user.save_to_xml
str = String.new
xml.write(str,2)

结果与我想要的有点不同。它使用小写字母生成XML标记:

<user PK=...
 ...
</user>

但我需要标签以大写字母开头:

<User PK=...
 ...
</User>

如何使用大写字母强制生成?

1 个答案:

答案 0 :(得分:1)

您可以像这样覆盖默认root_element_name

User.root_element_name "User"

如果要修改所有类的默认值,则需要覆盖定义为的default_root_element_name方法:

# The default root element name for this class. Equals the class
# name, with all parent module names stripped, and with capital
# letters converted to lowercase and preceded by a dash;
# e.g. "Foo::Bar::MySampleClass" becomes "my-sample-class".
def default_root_element_name
  self.name.split('::')[-1].gsub(/^(.)/){$1.downcase}.gsub(/(.)([A-Z])/){$1+"-"+$2.downcase}
end