Как разложить общие метки с помощью nokogiri builder? - PullRequest
0 голосов
/ 14 мая 2010

Я хотел бы создать несколько сборщиков с общими тегами, чтобы иметь такие документы XML:

  <xml version="1.0"?>
    <a_kind_of_root>
      <!-- This part is common -->
      <event_date>20100514</event_date>
      <event_id>123</event_id>
      <event_type>Conference</event_type>
      <!-- This part is specific to the builder -->
      <my_tag>some text</my_tag>
    </a_kind_of_root>
  </xml>

  <xml version="1.0"?>
    <another_kind_of_root>
      <!-- This part is common -->
      <event_date>20100514</event_date>
      <event_id>123</event_id>
      <event_type>Conference</event_type>
      <!-- This part is specific to the builder -->
      <my_other_tag>some integer</my_other_tag>
    </another_kind_of_root>
  </xml>

Я не знаю, как поместить общую часть в Nokogiri :: XML :: Builder

Спасибо

1 Ответ

1 голос
/ 14 мая 2010

Вы можете передать свой Builder методу, и этот метод добавит вашу общую информацию о событии:

def event_tags(xml, ev=Hash.new)
  xml.event_date = ev[:date]
  xml.event_id = ev[:id]
  xml.event_type = ev[:type]
end

builder = Nokogiri::XML::Builder.new do |xml|
  xml.root {
    event_tags xml, :date => get_date, :id => get_id, :type => get_type
    # blah blah
  }
end
...