Wildcard-Namespaces in lxml

Wie kann ich mit xpath den Xml-Namespace ignorieren? Ich verwende python lxml Bibliothek. Ich habe die Lösung aus dieser Frage ausprobiert, scheint aber nicht zu arbeiten.

In [151]: e.find("./*[local-name()='Buckets']") File "<string>", line unknown SyntaxError: invalid predicate 

One Solution collect form web for “Wildcard-Namespaces in lxml”

Verwenden Sie e.xpath , nicht e.find :


 import lxml.etree as ET content = '''\ <Envelope xmlns="http://www.example.com/zzz/yyy"> <Header> <Version>1</Version> </Header> <Buckets> some stuff </Buckets> </Envelope> ''' root = ET.fromstring(content) print(root.xpath("./*[local-name()='Buckets']")) # [<Element {http://www.example.com/zzz/yyy}Buckets at 0xb73a62ac>] 
  • Python lxml XPath Problem
  • Python und libxml2: wie man in xml-Knoten mit XPATH iterieren kann
  • Extrahieren Sie Informationen von der Website mit Xpath, Python
  • Sortieren von XML-Dateien
  • Ist es ein xpath (lxml) Bug?
  • Probleme beim Zugriff auf das xpath-Attribut mit scrapy
  • Python Crawler nicht finden spezifische Xpath
  • Wie bekomme ich XPath 'kein' in Python, wenn keine Daten gefunden wurden?
  • Wie bekomme ich den kompletten Inhalt eines Knotens mit xpath & lxml?
  • Python: Verwenden von xpath lokal / auf einem bestimmten Element
  • Python lxml findall mit mehreren namespaces
  • Python ist die beste Programmiersprache der Welt.