comment puis-je utiliser le vide des espaces de noms dans un lxml requête xpath?

J'ai un document xml dans le format suivant:

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:gsa="http://schemas.google.com/gsa/2007">
  ...
  <entry>
    <id>https://ip.ad.dr.ess:8000/feeds/diagnostics/smb://ip.ad.dr.ess/path/to/file</id>
    <updated>2011-11-07T21:32:39.795Z</updated>
    <app:edited xmlns:app="http://purl.org/atom/app#">2011-11-07T21:32:39.795Z</app:edited>
    <link rel="self" type="application/atom+xml" href="https://ip.ad.dr.ess:8000/feeds/diagnostics"/>
    <link rel="edit" type="application/atom+xml" href="https://ip.ad.dr.ess:8000/feeds/diagnostics"/>
    <gsa:content name="entryID">smb://ip.ad.dr.ess/path/to/directory</gsa:content>
    <gsa:content name="numCrawledURLs">7</gsa:content>
    <gsa:content name="numExcludedURLs">0</gsa:content>
    <gsa:content name="type">DirectoryContentData</gsa:content>
    <gsa:content name="numRetrievalErrors">0</gsa:content>
  </entry>
  <entry>
    ...
  </entry>
  ...
</feed>

J'ai besoin de récupérer tous les entry éléments à l'aide de xpath dans lxml. Mon problème est que je ne peux pas comprendre comment utiliser un espace de noms vide. J'ai essayé les exemples suivants, mais aucun travail. Veuillez informer.

import lxml.etree as et

tree=et.fromstring(xml)    

Les différentes choses que j'ai essayé sont:

for node in tree.xpath('//entry'):

ou

namespaces = {None:"http://www.w3.org/2005/Atom" ,"openSearch":"http://a9.com/-/spec/opensearchrss/1.0/" ,"gsa":"http://schemas.google.com/gsa/2007"}

for node in tree.xpath('//entry', namespaces=ns):

ou

for node in tree.xpath('//\"{http://www.w3.org/2005/Atom}entry\"'):

À ce point, je ne sais plus quoi essayer. Toute aide est grandement appréciée.

  • Il se sent vraiment bizarre qu'il ne sera pas vous permettre de trouver des balises dans l'espace de noms par défaut qui n'était pas assigné à un nom. Je ne pouvais pas en croire mes yeux quand j'ai rencontré cette.
InformationsquelleAutor ewok | 2011-11-08