title: Unwanted namespace declaration in lxml XPath
body: <p>I want to select the first child of particular element (<code>subelement</code>), but this child's namespace is  different from parent's namespace. Moreover, this child can be of any namespace. </p>
  
  <pre><code>xml = '''&lt;root xmlns="default_ns"&gt;
      &lt;subelement&gt;
          &lt;!-- here we can have an element of any namespace  --&gt;
          &lt;some_prefix:a xmlns:some_prefix="some_namespace"&gt;
              &lt;some_prefix:b/&gt;
          &lt;/some_prefix:a&gt;
      &lt;/subelement&gt;
  &lt;/root&gt;'''
  root = etree.fromstring(xml)
  evaluator = etree.XPathEvaluator(root, namespaces={'def':'default_ns'})
  child = evaluator.evaluate('//def:subelement/child::*')[0]
  a_string = etree.tostring(child)
  print a_string
  </code></pre>
  
  <p>This gives:</p>
  
  <pre><code>&lt;some_prefix:a xmlns:some_prefix="some_namespace" xmlns="default_ns"&gt;
      &lt;some_prefix:b/&gt;
  &lt;/some_prefix:a&gt;
  </code></pre>
  
  <p>but what I want to get is child without namespace declaration from parent <code>xmlns="default_ns"</code>: </p>
  
  <pre><code>&lt;some_prefix:a xmlns:some_prefix="some_namespace"&gt;
      &lt;some_prefix:b/&gt;
  &lt;/some_prefix:a&gt;
  </code></pre>