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
zeux avatar

zeux/pugixml

0
View on GitHub↗
4,590 stars·803 forks·C++·MIT·21 viewspugixml.org↗

Pugixml

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 allocations.

Its capability surface covers XML data manipulation, such as inserting or removing nodes and attributes, and document serialization for exporting structured data to streams or files. The project also provides mechanisms for tree traversal via iterators and walker objects, as well as a writer interface for redirecting output destinations.

Features

  • XML Parsing - Parses XML files from disk into a document object model for querying and manipulation.
  • XML Parsers - Implements a lightweight C++ library for parsing, manipulating, and saving XML data.
  • DOM-Based Models - Provides a document object model (DOM) for modifying XML tree structures and attributes in memory.
  • Stream Parsing - Parses XML data directly from input streams using UTF-8 and UTF-16 encodings.
  • XML Parsing - Saves the parsed XML document tree to a physical file on disk for persistent storage.
  • XML Processing - Offers a portable toolset for parsing, generating, and manipulating XML documents across different platforms.
  • XPath Data Extractors - Executes compiled XPath 1.0 queries to extract data values from XML documents.
  • CSS and XPath Query Engines - Includes a dedicated XPath 1.0 engine for extracting specific node sets and values from XML.
  • XML Serialization - Converts in-memory document objects into formatted XML strings or files for persistent storage.
  • XML Content Modification - Updates existing element values and appends new children to an XML tree.
  • XML Document Exporting - Writes XML documents or specific subtrees to output streams with configurable formatting and indentation.
  • XML Document Saving - Writes the internal document tree to a stream or file with configurable indentation and formatting.
  • XML Element Modification - Allows changing node names, attribute keys, and text values within an existing document tree.
  • XML Node Manipulation - Provides functions to insert, remove, and copy nodes or comments within an XML document.
  • XML Structural Modification - Removes specific child nodes or attributes from an XML document to change its hierarchy.
  • XML Tree Construction - Creates new nodes and attributes and inserts them at specific positions within the document hierarchy.
  • XML Tree Manipulation - Modifies XML tree structures by inserting, removing, or updating nodes and attributes.
  • XML Memory Allocation Control - Allows heap operations to be redirected to user-defined allocation functions to optimize memory use.
  • Node Querying - Navigates the XML tree to retrieve specific elements and their text content via child lookups.
  • In-Memory DOM Representations - Implements an in-memory tree structure to allow random access and modification of XML nodes and attributes.
  • DOM-to-Stream Serialization - Writes the parsed document structure to an output stream for exporting data.
  • Tree Walkers - Provides a walker object to visit every node in the XML tree and execute custom logic.
  • Custom Memory Allocators - Provides the ability to redirect heap operations to user-defined allocation functions for custom memory control.
  • XML Element Predicate Search - Locates nodes or attributes by applying a custom boolean function to filter elements.
  • XML Node Lookup - Locates specific child nodes based on their name or the value of a particular attribute.
  • Tree Traversal - Visits every node in the XML document using a walker object to execute custom logic.
  • DOM Iterators - Provides iterators for sequential navigation of child nodes and attributes without exposing internal pointers.
  • XML and YAML Node Navigation - Iterates through child nodes and attributes using a sequential iterator mechanism.
  • In-Place Parsers - Implements parsing that modifies the source buffer directly to minimize memory allocations.
  • Data Formats - XML processing library with DOM-like interface.

Star history

Star history chart for zeux/pugixmlStar history chart for zeux/pugixml

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. 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

Open-source alternatives to Pugixml

Similar open-source projects, ranked by how many features they share with Pugixml.
  • 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
  • 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
  • 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
  • leethomason/tinyxml2leethomason avatar

    leethomason/tinyxml2

    5,771View on GitHub↗

    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 e

    C++
    View on GitHub↗5,771
See all 30 alternatives to Pugixml→

Frequently asked questions

What does zeux/pugixml do?

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.

What are the main features of zeux/pugixml?

The main features of zeux/pugixml are: XML Parsing, XML Parsers, DOM-Based Models, Stream Parsing, XML Processing, XPath Data Extractors, CSS and XPath Query Engines, XML Serialization.

What are some open-source alternatives to zeux/pugixml?

Open-source alternatives to zeux/pugixml include: leonidas-from-xiv/node-xml2js — This project is a Node.js library for bidirectional conversion between XML strings and JavaScript objects. It… symfony/dom-crawler — This project is an HTML and XML DOM parser designed for loading and navigating the structure of web documents to… whatwg/html — This repository contains the HTML specification, which defines the core standards for web page structuring, content… leethomason/tinyxml2 — TinyXML-2 is a lightweight C++ library for parsing, manipulating, and generating XML documents. It functions as a… symfony/css-selector — This project is a PHP implementation of a CSS selector engine that transforms CSS selector strings into compatible… martinblech/xmltodict — xmltodict is a Python library that provides bidirectional serialization between XML documents and dictionaries. It…