Comprehensive XML generator for Python
Project description
XML Generator
Comprehensive XML generator for Python
Table of Contents
Installation
pip install xml-generator-seobaeksol
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())
Read a xml file
Use XmlParser
class for reading a xml file that return XmlNode
by close()
method.
It is sub-class of xml.etree.ElementTree.XMLParser
built-in python class.
from xml_generator.types import XmlParser
parser = XmlParser()
with open(
file="xml_generator/tests/samples/complex.xml", mode="r", encoding="utf-8"
) as f:
original_xml = f.read()
parser.feed(original_xml)
root = parser.close()
xml_string = root.to_xml(
declaration=True, declaration_tag='<?xml version="1.0" encoding="UTF-8"?>\n'
)
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Close
Hashes for xml_generator_seobaeksol-0.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 543d2a03601a3a47563dfafa3625705101e7d61e03ed5ab4fe992cda262a59bd |
|
MD5 | 7fa4c979a456f411a3536d7e07cebb1f |
|
BLAKE2b-256 | e1981c205cfee0d523bdd92bf7347b7a963962c1ca8aa1e30f0b5bba6fdd569d |