Skip to main content

Comprehensive XML generator for Python

Project description

Project Name

Comprehensive XML generator for Python

Table of Contents

Installation

pip install xml-generator

Usage

Import

from xml_generator.types import XmlNode

Comprehensive parsing

Parse Comprehensive format into an XmlNode object.

node = XmlNode.parse(
    {
        "name": "node",
        "attributes": {"attr1": "value1", "attr2": "value2"},
        "body": [
            {"name": "child1", "attributes": {"attr1": "value1"}},
            {"name": "child2", "attributes": {"attr2": "value2"}},
        ],
    }
)

Parse Comprehensive format with quries

node = XmlNode.from_query('node@attr1="value1"@attr2="value2"')
nodes = XmlNode.from_queries(
    [
        "NoValueNode",
        {
            "SHORT-NAME": "node",
        },
        {
            "ELEMENTS@type='string'": [
                "element@hint='id'",
                "element@unit='m'",
                {"element@unit='m'@min='0'@max='100'@init='50'": "100"},
            ],
        },
    ]
)

Searching a specific node

Return the first XmlNode with the given query. Query can be a name with attributes.

parent = node.find("node")
child1 = node.find("child1@attr1")
child2 = node.find("child2")

Generate a xml file

Using the to_xml() function that return the XmlNode as an XML string.

with open('sample.xml', 'w', encoding='utf-8') as f:
    f.write(node.to_xml())

Contributing

Coming soon.

Testing

python -m unittest discover -s xml_generator/tests -p "test*.py"

Building

python .\setup.py sdist bdist_wheel

Deployment

twine upload dist/*

License

License :: OSI Approved :: MIT License

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-generator-seobaeksol-0.2.2.tar.gz (4.8 kB view hashes)

Uploaded Source

Built Distribution

xml_generator_seobaeksol-0.2.2-py3-none-any.whl (5.5 kB view hashes)

Uploaded Python 3

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