Skip to main content

Generate XML from Python data structure

Project description

xml_from_seq

Generate XML from a Python data structure.

Examples

The XML() function renders a Python list or tuple to an XML element. The first item is the element name, the second item – if it's a dict – is the attributes, and the rest of the items are either text or nested elements.

from xml_from_seq import XML

item = ['item', {'attr1': 123, 'attr2': 'other value'}, 'This is the content of the item.']
assert XML(item) == '<item attr1="123" attr2="other value">This is the content of the item.</item>'

item = [
    'item',
    'This is some content of the item.'
    ['sub', 'This is the content of a subelement.']
]
print(XML(item))
 <item>
    This is some content of the item.
    <sub>
        This is the content of a subelement.
    </sub>
</item>

If an element is False or None it will be omitted. If a element's name is None its contents will appear in its place. If an attribute's value is None it will be omitted.

If an element's name is a list or tuple, it will be inserted into the XML as-is – so you can include already-rendered XML by double-bracketing it:

print(XML([['<foo>123</foo>']]))
<foo>123</foo>

If an element's tag name is xml_from_seq.CDATA, that element's content will be rendered unescaped in a <![CDATA[...]]> section.

Indentation and line breaks

If the first item in an element (not counting an attribute dict) is xml_from_seq.INLINE, that element's contents won't be indented on separate lines from the element's start and end tags.

from xml_from_seq import INLINE, XML

item = [
    'item',
    'This is some content of the item.'
    ['sub', INLINE, 'This is the content of a subelement.']
]
print(XML(item))
 <item>
    This is some content of the item.
    <sub>This is the content of a subelement.</sub>
</item>

You can pass an integer indent parameter to the XML() function to indent the output XML by that many tabs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xml_from_seq-0.3.3.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

xml_from_seq-0.3.3-py3-none-any.whl (2.8 kB view details)

Uploaded Python 3

File details

Details for the file xml_from_seq-0.3.3.tar.gz.

File metadata

  • Download URL: xml_from_seq-0.3.3.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.19

File hashes

Hashes for xml_from_seq-0.3.3.tar.gz
Algorithm Hash digest
SHA256 a3fb7ddb1a4d368506c49e5f3cce497f5718b47ab6e3c3f624fee8996fb07e5f
MD5 c71a73f8ef7478b02e6dc871019456b6
BLAKE2b-256 72feaadaf4f4bc0fc683957fab9f06265204e607107cf6cdcecfe0ce4f964c6c

See more details on using hashes here.

File details

Details for the file xml_from_seq-0.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for xml_from_seq-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 945543db6760f57a5ddca85bd1e540e5a7c2b4b5393713d4fa1084d79cd9935e
MD5 9d4aae6da18be6f673446f75d520879a
BLAKE2b-256 28791258a9b802c7e7bb18f71d4a6248f38c2f9c368db57c42cc109519454113

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page