title: Parsing XML lxml should I skip or remove comment blocking parsing
body: <p>I have an XML file which first line begins with </p>
  
  <pre><code>&lt;!--
  </code></pre>
  
  <p>Is there a way for lxml to skip this line and treat line 2 as the 1st line or should I remove it before handing to lxml?</p>
  
  <p>for example I tried implementing the example from the lxml documentation</p>
  
  <pre><code>&gt;&gt;&gt; root = etree.XML("&lt;root&gt;&lt;a&gt;TEXT&lt;/a&gt;&lt;/root&gt;")
  
  &gt;&gt;&gt; find_text = etree.XPath("//text()")
  &gt;&gt;&gt; text = find_text(root)[0]
  &gt;&gt;&gt; print(text)
  TEXT
  </code></pre>
  
  <p>and because of the first line I receive this error.</p>
  
  <pre><code>lxml.etree.XMLSyntaxError: Start tag expected, '&lt;' not found, line 1, column 1
  </code></pre>
  
  <p>this is my script I am using to run the file</p>
  
  <pre><code>from lxml import etree
  from lxml import objectify
  import argparse
  import os
  
  parser = argparse.ArgumentParser()
  parser.add_argument("path", type=str, nargs="+")
  parser.add_argument('-e',
                      '--extension',
                      default='',
                      help='File extension to filter by.')
  
  args = parser.parse_args()
  name_pattern = "*" + args.extension
  my_dir = args.path[0]
  
  for dir_path, subdir_list, file_list in os.walk(my_dir):
      for name_pattern in file_list:
          full_path = os.path.join(dir_path, name_pattern)
          # print(full_path)
          # print(file_list)
  
  
  def getsMeet(file_list):
      for filename in sorted(file_list):
          filename=my_dir + filename
          yield filename
  
  def parseXML():
      """
      from mouse parsing a file with objectify
      http://www.blog.pythonlibrary.org/2012/06/06/parsing-xml-with-python-using-lxml-objectify/
      """
      for file in getsMeet(file_list):
          with open(file) as f:
              xml = f.read()
  
              root = objectify.fromstring(xml)
              print(root.tag)
              # print(objectify.dump(root))
              race = objectify.Element("race")
              print(objectify.dump(race))
  
  
  parseXML()
  </code></pre>
  
  <p>The file is valid doing dump root with Objectify works perfectly, it was etree that failed.</p>
  
  <p>This is the comment and a selected snip of the first element of XML a rather large file.</p>
  
  <pre><code>&lt;!-- Copyright Notice: © 2010 Racing NSW (and other parties working with it). NSW racing information,including fields, form and results, is subject to copyright which is owned by Racing NSW and other parties working with it. --&gt;
  &lt;meeting id="42977" barriertrial="0" venue="Rosehill Gardens" date="2016-05-21T00:00:00" gearchanges="-1" stewardsreport="-1" gearlist="-1" racebook="0" postracestewards="0" meetingtype="TAB" rail="Timing - Electronic : Rail - +6m" weather="Fine      " trackcondition="Good 3    " nomsdeadline="2016-05-16T11:00:00" weightsdeadline="2016-05-17T16:00:00" acceptdeadline="2016-05-18T09:00:00" jockeydeadline="2016-05-18T12:00:00"&gt;
  &lt;/meeting&gt;
  </code></pre>