Ruby on rails 使用XML::Mapping XML/Mapping gem for ruby创建嵌套的XML文档
使用ruby 2、rails 4、gem:xml/mapping 以下是电流输出:Ruby on rails 使用XML::Mapping XML/Mapping gem for ruby创建嵌套的XML文档,ruby-on-rails,ruby,xml,gem,Ruby On Rails,Ruby,Xml,Gem,使用ruby 2、rails 4、gem:xml/mapping 以下是电流输出: class Item include XML::Mapping array_node :picture_details, 'PictureDetails', :class => PictureURL, :default_value => [] end class PictureURL include XML::Mapping include Init
class Item
include XML::Mapping
array_node :picture_details, 'PictureDetails', :class => PictureURL, :default_value => []
end
class PictureURL
include XML::Mapping
include Initializer
text_node :picture_url, 'PictureURL', :optional => true
end
我得到的输出:
<PictureDetails>
<PictureURL>VALUE</PictureURL>
</PictureDetails>
<PictureDetails>
<PictureURL>VALUE</PictureURL>
</PictureDetails>
<PictureDetails>
<PictureURL>VALUE</PictureURL>
</PictureDetails>
价值
价值
价值
我想要的是:
<PictureDetails>
<PictureURL>VALUE</PictureURL>
<PictureURL>VALUE</PictureURL>
<PictureURL>VALUE</PictureURL>
</PictureDetails>
价值
价值
价值
我查阅了文档,但仍然不知道如何设置它以达到所需的输出 (我是xml映射gem的作者)
根据您的描述,看起来您希望“PictureDetails”是数组节点的基本路径,“PictureURL”是每个数组元素的路径。在每个数组元素中,PictureURL应该只将其picture\u url属性写入元素text,而不创建子元素或-属性,这意味着text\u节点的路径规范应该仅为“.”
因此,这应该是可行的:
class Item
include XML::Mapping
array_node :picture_details, 'PictureDetails', 'PictureURL', :class => PictureURL, :default_value => []
end
class PictureURL
include XML::Mapping
include Initializer
text_node :picture_url, '.', :optional => true
end