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
·
leethomason avatar

leethomason/tinyxml2

0
View on GitHub↗
5,771 stars·1,948 forks·C++·Zlib·7 views

Tinyxml2

TinyXML-2 is a lightweight C++ library for parsing, manipulating, and generating XML documents. It functions as a UTF-8 XML processor that represents data through a hierarchical Document Object Model.

The library provides tools for both DOM parsing and direct document generation via data streams. It includes capabilities for navigating the XML tree to locate specific elements, modifying attributes and content, and resolving character entities and Unicode numeric references into UTF-8 text.

The processor includes syntax validation and diagnostic utilities that track line-number metadata for every node and attribute to report precise coordinates for parsing errors.

Features

  • Document Object Models - Represents XML data as a hierarchical Document Object Model (DOM) for programmatic navigation and modification.
  • XML Parsing - Provides a C++ library for parsing and manipulating XML documents into structured data objects.
  • Document Generation - Produces XML output by writing data directly to a stream without requiring a fully materialized object tree.
  • XML and HTML Document Parsers - Creates in-memory document trees from XML for programmatic traversal and modification.
  • UTF-8 XML Processors - Functions as a UTF-8 XML processor that resolves character entities and Unicode numeric references into encoded text.
  • Source Line Tracking - Tracks source file line numbers for every node and attribute to provide precise coordinates for parsing errors.
  • XML Syntax Validators - Verifies the structural and syntactical correctness of XML files while tracking line metadata for error reporting.
  • Single-Pass Parsing - Employs a single-pass parsing strategy to transform raw XML text into an internal object model efficiently.
  • XML Entity Resolution - Converts predefined character entities and Unicode numeric references into UTF-8 equivalents during data parsing.
  • Character Entity Resolution - Translates predefined XML entities and Unicode numeric references into UTF-8 encoded bytes during parsing.
  • In-Memory Tree Hierarchies - Implements an in-memory node hierarchy that allows bidirectional traversal of the XML document structure.
  • Minimalist Library Design - Maintains a minimal codebase designed for easy integration into other programs without heavy external dependencies.
  • XML and YAML Node Navigation - Allows for finding specific text values or attributes by navigating the XML document's tree structure.
  • XML Processing - Simple and fast XML parser for C++.
  • Networking and Utilities - XML parser for easy integration.
  • XML Parsers - Simple and fast C++ XML parser.
  • XML - Listed in the “XML” section of the Awesome Cpp Cn awesome list.

Star history

Star history chart for leethomason/tinyxml2Star history chart for leethomason/tinyxml2

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

Open-source alternatives to Tinyxml2

Similar open-source projects, ranked by how many features they share with Tinyxml2.
  • 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
  • symfony/dom-crawlersymfony avatar

    symfony/dom-crawler

    4,043View on GitHub↗

    This project is an HTML and XML DOM parser designed for loading and navigating the structure of web documents to extract specific data points. It functions as a web scraping utility that provides a system for locating precise elements using a CSS and XPath selector engine. The library includes a URI resolver that converts relative links found in documents into absolute addresses using a base URI. It provides a set of tools for retrieving text, attributes, and media sources from parsed content. The toolset covers document hierarchy traversal, selector-based filtering, and text extraction with

    PHP
    View on GitHub↗4,043
  • 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
  • sparklemotion/nokogirisparklemotion avatar

    sparklemotion/nokogiri

    6,236View on GitHub↗

    Nokogiri is an XML and HTML parsing library that builds navigable document trees from strings, files, or URLs using native C parsers for speed and standards compliance. It provides a CSS selector engine that translates CSS3 selectors into XPath expressions for querying nodes, an XPath query interface with namespace support, a document manipulation toolkit for modifying parsed documents, XSD schema validation, and XSLT transformation capabilities. The library wraps libxml2 and libxslt C libraries with Ruby bindings for high-performance parsing, and integrates Google's Gumbo parser for standard

    Clibxml2libxsltnokogiri
    View on GitHub↗6,236
See all 30 alternatives to Tinyxml2→

Frequently asked questions

What does leethomason/tinyxml2 do?

TinyXML-2 is a lightweight C++ library for parsing, manipulating, and generating XML documents. It functions as a UTF-8 XML processor that represents data through a hierarchical Document Object Model.

What are the main features of leethomason/tinyxml2?

The main features of leethomason/tinyxml2 are: Document Object Models, XML Parsing, Document Generation, XML and HTML Document Parsers, UTF-8 XML Processors, Source Line Tracking, XML Syntax Validators, Single-Pass Parsing.

What are some open-source alternatives to leethomason/tinyxml2?

Open-source alternatives to leethomason/tinyxml2 include: zeux/pugixml — pugixml is a lightweight C++ XML parser and DOM-based library used for parsing, manipulating, and saving XML… symfony/dom-crawler — This project is an HTML and XML DOM parser designed for loading and navigating the structure of web documents to… leonidas-from-xiv/node-xml2js — This project is a Node.js library for bidirectional conversion between XML strings and JavaScript objects. It… sparklemotion/nokogiri — Nokogiri is an XML and HTML parsing library that builds navigable document trees from strings, files, or URLs using… michaelrsweet/mxml — Tiny XML library. microsoft/windows-universal-samples — This repository is a comprehensive collection of reference implementations and sample libraries for the Universal…