title: In Go, how to parse XML with mixed elements/chardata/elements/chardata content?
body: <p>Let's say I have a structure, that can reference elements
  multiple times:</p>
  <pre><code>    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
      &lt;book category=&quot;cooking&quot;&gt;
        &lt;title lang=&quot;en&quot;&gt;Everyday Italian&lt;/title&gt;
        &lt;author&gt;Giada De Laurentiis&lt;/author&gt;
        &lt;year&gt;2005&lt;/year&gt;
        &lt;price&gt;30.00&lt;/price&gt;
        Blah Blah Blah Bleh Blah of &lt;year/&gt; written by &lt;author/&gt;
      &lt;/book&gt;
  </code></pre>
  <p>How can I parse this XML (or better to say, how can I describe the structure),
  so that I can have these <em>internal references</em> to it?</p>
  <pre><code>    type Book struct{
         t string `xml:&quot;book&gt;title&quot;`
         p string `xml:&quot;book&gt;price&quot;`
         y string `xml:&quot;book&gt;year&quot;`
         a string `xml:&quot;book&gt;author&quot;`
         blah string ???????
      }
  </code></pre>
  <p>The naïve approach (<a href="https://go.dev/play/p/JVM98pCcI0D" rel="nofollow noreferrer">https://go.dev/play/p/JVM98pCcI0D</a>), just to describe <code>blah</code> as <code>cdata</code> is obviously wrong, because the references <code>&lt;year/&gt;</code> and <code>&lt;author/&gt;</code> are getting lost.</p>
  <p>What is the right way to define <code>blah</code> here, so that the internal structure of it, is still available after parsing?</p>