title: lxml iterparse, child with same tag name
body: <p>I want to parse xml on fly from file (1,5gb file) which looks like: </p>
  
  <pre><code>&lt;product product_id="x" name="x" sku_number="x"&gt;
      &lt;category&gt;
          &lt;primary&gt;x&lt;/primary&gt;
          &lt;secondary&gt;y&lt;/secondary&gt;
      &lt;/category&gt;
      &lt;URL&gt;
          &lt;product&gt;URL__I_WANT_TO_PULLOUT&lt;/product&gt;
          &lt;productImage&gt;x&lt;/productImage&gt;
      &lt;/URL&gt;
      &lt;description&gt;
          &lt;short&gt;x&lt;/short&gt;
          &lt;long&gt;x&lt;/long&gt;
      &lt;/description&gt;
  &lt;/product&gt;
  </code></pre>
  
  <p>I'm using <code>lxml.etree.iterparse</code> like:</p>
  
  <pre><code>for event, elem in ET.iterparse(f, events=('end',), tag='product'):
      save_product(elem)
  </code></pre>
  
  <p>I get all required values from xml nodes. The only node that I can't pull out is <code>URL&gt;product</code> (it's just empty). I think that it's caused by same tag name. Is there any way to parse xml on fly, besides <code>iterparse</code>?  </p>