awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
martinblech avatar

martinblech/xmltodict

0
View on GitHub↗
5,741 stars·473 forks·Python·MIT·21 views

Xmltodict

xmltodict is a Python library that provides bidirectional serialization between XML documents and dictionaries. It functions as a parser that converts marked-up input into key-value pairs and a serialization utility that transforms dictionaries back into structured XML documents.

The project includes an incremental stream processor that uses depth-based callbacks to handle large XML files while maintaining constant memory usage. It features a namespace manager for mapping prefixes and declarations, as well as a security sanitizer that blocks external entity expansion and validates element names to prevent injection attacks.

The library provides capabilities for data type enforcement, such as forcing specific elements to be represented as lists regardless of child count. It also supports data post-processing through user-defined callbacks and offers configurable controls for expanding, collapsing, or skipping namespaces during the conversion process.

Features

  • XML Serialization - Transforms Python dictionaries back into structured, well-formed XML documents with support for namespaces and formatting.
  • XML to Dictionary Mappers - Parses XML trees into nested Python dictionaries by mapping tags to keys and text nodes to values.
  • XML Parsing - Converts marked-up documents into dictionaries using configurable rules for prefixes and whitespace.
  • Stream-Based Parsing - Implements an event-driven streaming parser to handle large XML files with constant memory usage.
  • Stream Processors - Provides an incremental stream processor that handles large XML files with constant memory usage.
  • Large Scale XML Processing - Processes massive XML files incrementally using streaming callbacks to maintain low memory usage.
  • XML Serialization Formats - Generates structured XML files by transforming Python dictionaries into formatted markup.
  • Object-to-XML Mapping - Transforms Python dictionaries into structured XML documents with formatting and list expansion options.
  • XML to JSON Converters - Converts XML documents into nested Python dictionaries, enabling JSON-like manipulation of marked-up data.
  • XML Namespace Management - Manages complex XML namespaces by mapping prefixes and controlling their appearance in converted data.
  • XML Namespace Declarations - Maps XML namespaces to prefixes or collapses them into simplified keys based on configurable rules.
  • Incremental Parsing - Processes large XML files incrementally using callbacks to maintain constant memory usage.
  • Type Enforcement - Enforces specific data types, such as wrapping elements in lists, during the XML parsing process.
  • List Type Enforcement - Forces specific XML elements to be treated as lists even if only a single child exists.
  • XML External Entity Prevention - Blocks the resolution of external entities during parsing to prevent resource exhaustion and injection attacks.
  • XML Processing Security - Implements security measures including external entity blocking and element name validation to prevent XML injection attacks.
  • Data Value Transformations - Provides user-defined callbacks to transform XML values or attributes on the fly during conversion.
  • Namespace Representation Controls - Provides controls to expand, collapse, or skip namespaces during the parsing process.
  • Symmetric Input-Output Mappings - Uses shared transformation rules to enable consistent bidirectional conversion between dictionaries and XML.
  • Data Loading Extraction - Makes XML feel like working with JSON.
  • Documentation and Processing - Tool for converting XML to Python dictionaries.
  • HTML and XML Processing - Handling XML data with JSON-like syntax.

Star history

Star history chart for martinblech/xmltodictStar history chart for martinblech/xmltodict

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Xmltodict

These projects share indexed features with Xmltodict. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • leonidas-from-xiv/node-xml2jsLeonidas-from-XIV avatar

    Leonidas-from-XIV/node-xml2js

    4,966View on GitHub↗

    This project is a Node.js library for bidirectional conversion between XML strings and JavaScript objects. It functions as an XML parser that transforms XML content into structured data and an XML serializer that generates formatted strings from JavaScript data objects. The toolkit includes a data transformer that applies custom processing functions to tags and attributes during the conversion process. It manages XML namespaces and supports the definition of custom root elements to maintain document structure during generation. The system handles XML data parsing, string generation, and name

    CoffeeScript
    View on GitHub↗4,966
  • whatwg/htmlwhatwg avatar

    whatwg/html

    9,163View on GitHub↗

    This repository contains the HTML specification, which defines the core standards for web page structuring, content organization, and document rendering. It establishes the fundamental algorithms for state-machine-based tokenization, tree construction for the document object model, and origin-based security isolation. The specification provides a framework for defining custom elements with independent lifecycles and registries. It also details the requirements for cross-document communication, session history management, and the synchronization of interface properties with content attributes.

    HTMLcanvaseventsourcehtml
    View on GitHub↗9,163
  • fb55/htmlparser2fb55 avatar

    fb55/htmlparser2

    4,774View on GitHub↗

    htmlparser2 is a collection of tools for high-performance markup parsing, DOM manipulation, and incremental stream processing. It functions as an HTML and XML parser that converts markup strings into structured object trees, alongside a streaming markup parser designed for memory-efficient processing of large documents. The project includes a DOM manipulation library for querying, modifying, and serializing document object model trees. It also provides a web feed parser to extract structured metadata and entries from RSS, RDF, and Atom feeds. The library covers broad capabilities in data par

    TypeScript
    View on GitHub↗4,774
  • zeux/pugixmlzeux avatar

    zeux/pugixml

    4,590View on GitHub↗

    pugixml is a lightweight C++ XML parser and DOM-based library used for parsing, manipulating, and saving XML documents. It provides a portable toolset for reading XML data from files, strings, or memory buffers and converting them into an in-memory document object model. The library includes a dedicated XPath 1.0 engine for extracting specific nodes and data through path expressions. It distinguishes itself through customizable memory management, allowing heap operations to be redirected to user-defined allocation functions, and the ability to perform in-place buffer parsing to reduce memory

    C++
    View on GitHub↗4,590
Compare all 30 related projects→

Frequently asked questions

What does martinblech/xmltodict do?

xmltodict is a Python library that provides bidirectional serialization between XML documents and dictionaries. It functions as a parser that converts marked-up input into key-value pairs and a serialization utility that transforms dictionaries back into structured XML documents.

What are the main features of martinblech/xmltodict?

The main features of martinblech/xmltodict are: XML Serialization, XML to Dictionary Mappers, XML Parsing, Stream-Based Parsing, Stream Processors, Large Scale XML Processing, XML Serialization Formats, Object-to-XML Mapping.

Which projects share features with martinblech/xmltodict?

Projects with overlapping indexed features include: leonidas-from-xiv/node-xml2js — This project is a Node.js library for bidirectional conversion between XML strings and JavaScript objects. It… whatwg/html — This repository contains the HTML specification, which defines the core standards for web page structuring, content… fb55/htmlparser2 — htmlparser2 is a collection of tools for high-performance markup parsing, DOM manipulation, and incremental stream… zeux/pugixml — pugixml is a lightweight C++ XML parser and DOM-based library used for parsing, manipulating, and saving XML… bpmn-io/bpmn-js — bpmn-js is a browser-based BPMN 2.0 web modeler and rendering engine used for creating, editing, and visualizing… dolanmiu/docx — docx is a JavaScript and TypeScript library for the programmatic generation and manipulation of Word documents. It…