我正在使用xml/mapping库,以及我如何生成XML:
xml = user.save_to_xml
str = String.new
xml.write(str,2)
结果与我想要的有点不同。它使用小写字母生成XML标记:
<user PK=...
...
</user>
但我需要标签以大写字母开头:
<User PK=...
...
</User>
如何使用大写字母强制生成?
答案 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