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"}},
],
}
)
Create a XmlNode with a query
node = XmlNode.from_query('node@attr1="value1"@attr2="value2"')
Create a XmlNode with a extended query
extend_query = {
"root": [
"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")
Serialization
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())
Using the to_extend_query() function that return the extended query object as an XML string.
extended_query_obj = root.to_extended_query()
Deserialization
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
Release files for xml-generator-seobaeksol 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xml-generator-seobaeksol-0.5.0.tar.gz | 6.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xml_generator_seobaeksol-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.3 kB
Release files / xml-generator-seobaeksol-0.5.0.tar.gz
| Download URL | xml-generator-seobaeksol-0.5.0.tar.gz |
|---|---|
| Size | 6.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad980d6b758548518cc528870985aedad4287b7ee4247065040f3c1ac24adc21
|
|
BLAKE2b-256 checksum How to use checksums |
e6271318e0ccd9bdf211ccc46f8370e7fe1f6a331790b4eb10ebade1a981c72a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.12.0
|
Release files / xml_generator_seobaeksol-0.5.0-py3-none-any.whl
| Download URL | xml_generator_seobaeksol-0.5.0-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1755ce8e6489697c79d4c0126f2096ccbe47378e098e0857e78babea304968af
|
|
BLAKE2b-256 checksum How to use checksums |
4a35d142a63a830afb1f72ccdd193f84e0d7d01a0a7ac7be6612349336b54abe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.12.0
|