title: mixed XML decoding in golang preserving order
body: <p>I need to extract offers from an XML, but taking into consideration nodes order:</p>
  
  <pre>
  &lt;items&gt;
    &lt;offer/&gt;
    &lt;product&gt;
      &lt;offer/&gt;
      &lt;offer/&gt;
    &lt;/product&gt;
    &lt;offer/&gt;
    &lt;offer/&gt;
  &lt;/items&gt;
  </pre>
  
  <p>The following struct would decode the values, but into two different slices, which will cause loss of original order:</p>
  
  <pre>
  type Offers struct {
      Offers   []offer `xml:"items>offer"`
      Products []offer `xml:"items>product>offer"`
  }
  </pre>
  
  <p>Any ideas?</p>