title: Error with Beautiful Soup's extract()
body: <p>I'm working on some screen scraping software and have run into an issue with Beautiful Soup. I'm using python 2.4.3 and Beautiful Soup 3.0.7a.</p>
  
  <p>I need to remove an <code>&lt;hr&gt;</code> tag, but it can have many different attributes, so a simple replace() call won't cut it.</p>
  
  <p>Given the following html:</p>
  
  <pre><code>&lt;h1&gt;foo&lt;/h1&gt;
  &lt;h2&gt;&lt;hr/&gt;bar&lt;/h2&gt;
  </code></pre>
  
  <p>And the following code:</p>
  
  <pre><code>soup = BeautifulSoup(string)
  
  bad_tags = soup.findAll('hr');
  [tag.extract() for tag in bad_tags] 
  
  for i in soup.findAll(['h1', 'h2']):
      print i
      print i.string
  </code></pre>
  
  <p>The output is:</p>
  
  <pre><code>&lt;h1&gt;foo&lt;/h1&gt;
  foo
  &lt;h2&gt;bar&lt;/h2&gt;
  None
  </code></pre>
  
  <p>Am I misunderstanding the extract function, or is this a bug with Beautiful Soup?</p>