2016-06-21 17 views
0

Hier ist mein Code:Erstellen Sie eine XML-Datei mit Python?

import xml.etree.ElementTree as ET 

root = ET.Element("rss", version="2.0", xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/", xmlns:content="http://purl.org/rss/1.0/modules/content/", xmlns:wfw="http://wellformedweb.org/CommentAPI/", xmlns:dc="http://purl.org/dc/elements/1.1/", xmlns:wp="http://wordpress.org/export/1.2/") 

ET.dump(root) 

Dies ist XML-Datei i zu erzeugen versuchen:

<rss version="2.0" 
    xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/" 
    xmlns:content="http://purl.org/rss/1.0/modules/content/" 
    xmlns:wfw="http://wellformedweb.org/CommentAPI/" 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:wp="http://wordpress.org/export/1.2/" 
> 

dies ist sehr einfach Teil der eigentlichen XML-Datei, aber ich bin nicht in der Lage es richtig mit elementtree zu erstellen . Bis zur Versionsnummer funktioniert es richtig, aber wenn ich "xmlns: something" hinzufüge, funktioniert es nicht. Ich bin sehr neu in xml, also habe ich keine Ahnung, auch googlen kann mir nicht helfen zu verstehen.

HINWEIS: Bitte sagen Sie mir, ob lxml einfacher ist oder dieses ElementTree. Weil ich zuvor lxml für xpath- und css-Elemente verwendet habe.

+1

Ich glaube nicht, dass 'xmlns: excerpt' eine gültige Python-Kennung ist. Verwenden Sie 'ET: element (" rss ", attrib = {" xmlns: Auszug ":" http: // ... ", ...})' – syntonym

+0

danke es half. :) –

Antwort

1

Python-IDs dürfen keine Doppelpunkte enthalten. ElementTree ermöglicht durch den Schlüssel attrib ein Attribut Wörterbuch weitergeben müssen:

ET.element("rss", attrib={"xmlns:excerpt":"http..."}

+0

Ich habe noch ein Problem: Immer wenn ich "ET.SubElement (wp_author," wp: author_last_name "). Text =" "" es gibt mir dies: codiertes Ergebnis: " <! [ CDATA []] > " –

+0

Wie Sie diese Zeichen vor dem Erzeugen der XML-Datei dekodieren. –

+0

Wenn ich Sie richtig verstanden habe, möchten Sie CDATA in Ihr XML einfügen. [Hier] (http://stackoverflow.com/questions/174890/how-to-output-cdata-using-elementtree) ist eine Frage (mit Antworten), aber es gibt andere. Wenn sie nicht für Sie arbeiten, ist es am besten, wenn Sie hier in SO eine neue Frage erstellen. – syntonym

Verwandte Themen