title: Parse dynamic XML
body: <p>I understand how to unmarshal simple xml data to Go structs but can't figure out how to handle dynamic tags. Here's an example. There can be <code>&lt;image_3&gt;&lt;image_4&gt;</code> etc</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;products&gt;
    &lt;product&gt;
      &lt;product_id&gt;11600&lt;/product_id&gt;
      &lt;date_created&gt;&lt;![CDATA[2018-10-19 15:20:22]]&gt;&lt;/date_created&gt;
      &lt;price&gt;200&lt;/price&gt;
      &lt;stock_status&gt;In Stock&lt;/stock_status&gt;
      &lt;images&gt;
        &lt;image_1&gt;1.jpg&lt;/image_1&gt;
        &lt;image_2&gt;2.jpg&lt;/image_2&gt;
     &lt;/images
     &lt;/product&gt;
  &lt;/products&gt;
  </code></pre>
  
  <p>//update </p>
  
  <pre><code>type Products struct {
          XMLName xml.Name `xml:"products"`
          Text    string   `xml:",chardata"`
          Product struct {
                  Text        string `xml:",chardata"`
                  ProductID   string `xml:"product_id"`
                  DateCreated string `xml:"date_created"`
                  Price       string `xml:"price"`
                  StockStatus string `xml:"stock_status"`
                  Images          map[string]string `xml:"images"`
          } `xml:"product"`
  } 
  </code></pre>
  
  <p>When I run <code>fmt.Println(len(products.Product[0].Images))</code> I get 0. What I'm missing here?</p>