Elementflow.

Streaming XML-Generator für Python
Jetzt downloaden

Elementflow. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • BSD License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Ivan Sagalaev
  • Website des Verlags:
  • http://softwaremaniacs.org

Elementflow. Stichworte


Elementflow. Beschreibung

Streaming XML-Generator für Python ElementFlow ist eine Python-Bibliothek zum Erzeugen von XML als Stream, ohne zuerst ein Baum in der Speicherbildung zu erstellen. Die vorhandenen XML-Herstellungsbibliotheken (wie ElementTree, LXML) erstellen einen ganzen XML-Baum im Speicher und dann serialisieren Sie ihn. Es ist möglicherweise ineffizient für mäßig große XML-Nutzlasten (Denken Sie an einen contentorientierten Webdienst, der viele XML-Datenausgänge erzeugt). Pythons eingebauter XML.sax.saxutils.xmlgenerator ist sehr niedrig und erfordert abschließende Elemente von Hand.Asso, die meisten XML-Bibliotheken, um ehrlich zu sein, beim Umgang mit Namespaces zu saugen 'text.xml', 'w') # kann ein beliebiges Objekt mit .write () Methodwith elementflow.xml (Datei, u'root ') als XML: XML.Element (U'Item', attrs = {u'Cey ': u'Value'}, text = U'text ') mit xml.container (u'container', attrss = {u'Key ': u'value'}): xml.text (U'text ') xml .element (u'subelement ', text = u'subelement text') verwenden, um Containerelemente ordnungsgemäß zu schließen. Die Bibliothek erwartet Unicode-Zeichenfolgen am Eingang und erzeugt den UTF-8-codierten Ausgang (Sie können diese "u" für rein ASCII-Zeichenfolgen auslassen, wenn Sie möchten, wechselt Python das automatisch automatisch) .xml mit Namespaces: mit elementflow.xml (Datei , 'root', namespaces = {'': 'urn: n', 'n1': 'urn: n1'}) als XML: XML.Element ('Artikel') mit xml.container ('Container', Namespaces = {'n2': 'urn: n2'): xml.Element ('N1: Subement') XML.Element ('N2: Subement') Elemente mit Namespaces mit Namespaces werden mit Präfixen definiert. Sie können Namespaces auf der Wurzelebene und für jeden Container definieren. Die Bibliothek prüft auf Namensspace-Präfixe, die vorher nicht definiert wurden, und erhöhen in diesem Fall. Fälle ist es bequemer, einen solchen XML-Produzenten als Python-Iterator zu haben. Dies geschieht leicht durch Umwickeln von XML-Generierungscode in eine Generatorfunktion: def g (): xml = elementflow.xml (elementflow.queue (), 'root') mit XML: Für Artikel in der Sammlung: XML.Element (... ) ergeben xml.file.pop () ergeben xml.file.pop () elementflow.queue () ist ein temporärer Puffer, der Daten von einem XML-Generator akzeptiert und beim Anrufen von .pop () darauf gelöscht wird. Sie möchten auch nur Daten vom Iterator ausführen, wenn dieser Puffer eine bestimmte Größe erreicht: Wenn len (xml.file)> bufsize: ergeben XML.FILE.POP () Anforderungen: · Python


Elementflow. Zugehörige Software