Elementflow

Streaming XML-generator voor Python
Download nu

Elementflow Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • BSD License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Ivan Sagalaev
  • Uitgever website:
  • http://softwaremaniacs.org

Elementflow Tags


Elementflow Beschrijving

Streaming XML-generator voor Python Elementflow is een Python-bibliotheek voor het genereren van XML als een stroom zonder eerst een boom in het geheugen te bouwen. Sommige bestaande XML producerende bibliotheken (zoals Elementtree, LXML) bouwen een hele XML-boom in het geheugen en vervolgens serialiseren het. Het kan inefficiënt zijn voor matig grote XML-payloads (denk aan een inhoudsgerichte webservice die veel XML-gegevensuitvoer produceert). Python's ingebouwde XML.SAX.SAXUTILS.XMLGENERATOR is zeer laag niveau en vereist sluitelementen met de hand. Ook, de meeste XML-bibliotheken, om eerlijk te zijn, zuigen bij het omgaan met naamruimtes.usage: Basic XML-generatie: import elementFile = open ( 'Text.xml', 'W') # kan elk object zijn met .write () Methodwith ElementFlow.xml (bestand, u'root ') als XML: XML.Element (U'item', atts = {u'key ': u'value'}, tekst = u'text ') met XML.Container (U'Container', atts = {u'key ': u'value'}): xml.text (u'text ') XML .Element (U'Subelement ', Tekst = U'Subelement Tekst') met behulp van met is vereist om containerelementen correct te sluiten. De bibliotheek verwacht Unicode-snaren op input en produceert UTF-8-gecodeerde uitvoer (u kunt die "u" s voor puur ASCII-snaren weglaten als u dat wilt, Python zal de, automatisch) .xml met naamruimten converteren: met ElementFlow.xml (bestand , 'root', naamruimtes = {'': 'urn: n', 'n1': 'urn: n1'}) als XML: xml.element ('item') met XML.Container ('container', naamruimtes = {'N2': 'URN: N2'): XMLL.Element ('N1: Subelement') XML.element ('N2: Subelement') elementen met naamruimten worden gedefinieerd met behulp van voorvoegsels. U kunt Namespaces op het rootniveau en voor elke container definiëren. De bibliotheek zal controleren op namespace-voorvoegsels die niet van tevoren zijn gedefinieerd en zal in dat geval ValueDror verhogen.Pretty-printen wordt ook ondersteund: met ElementFlow.xml (bestand, 'root', indent = true): # ... in sommige Cases Het is handiger om een dergelijke XML-producent te hebben als een python iterator. Dit wordt eenvoudig gedaan door XML-generatiecode in een generatorfunctie in te wikkelen: DEF G (): XML = ElementFlow.xml (Elementflow.QUEUE (), 'ROOT') MET XML: VOOR ITEM IN COLLECTIE: XML.ELLement (... ) Opbrengst XML.File.POP () oplevert XML.File.POP () ElementFlow.Quue () is een tijdelijke buffer die gegevens van een XML-generator accepteert en wordt gewist bij het bellen .POP () erop. U kunt ook alleen gegevens van de iterator opleveren wanneer deze buffer een bepaalde omvang bereikt: als LEN (XML.FILE)> BUFSIZE: WERKT XML.FILE.POP () Vereisten: · Python


Elementflow Gerelateerde software