Heim > Artikel > Backend-Entwicklung > Wie kann ich XML-Namespaces ignorieren, wenn ich die Findall- und Find-Methoden von ElementTree verwende?
XML-Namespace in ElementTree ignorieren
Die Findall- und Find-Methoden von ElementTree erfordern einen Namespace-bewussten Ansatz beim Suchen von Elementen aus einer XML-Datei, die Namespaces enthält. Dies kann jedoch umständlich sein, wenn zahlreiche Tags Namespaces erfordern.
Namespace mit Iterparse ignorieren
Um Namespaces zu ignorieren, können wir die iterparse-Methode von ElementTree verwenden. So geht's:
<code class="python">from io import StringIO # Python 2: import from StringIO instead import xml.etree.ElementTree as ET # Parse the XML file it = ET.iterparse(StringIO(xml)) # Strip namespace from tags for _, el in it: _, _, el.tag = el.tag.rpartition('}') # strip ns root = it.root</code>
Dieser Ansatz ändert Tag-Namen durch Entfernen von Namespaces und ermöglicht so eine einfachere Elementlokalisierung ohne explizite Angabe von Namespaces. Wie in der Diskussion hier vorgeschlagen, bietet diese Technik eine größere Flexibilität bei der Handhabung mehrerer Namespaces und Aliase.
Das obige ist der detaillierte Inhalt vonWie kann ich XML-Namespaces ignorieren, wenn ich die Findall- und Find-Methoden von ElementTree verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!