Socket
Socket
Sign inDemoInstall

xml-generator-seobaeksol

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    xml-generator-seobaeksol

Comprehensive XML generator for Python


Maintainers
1

Readme

XML Generator

Comprehensive XML generator for Python

Table of Contents

  • Installation
  • Usage
  • Contributing
  • License

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

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc