A curated list of awesome XML standards, libraries and resources.
45
55 commits
updated Aug 31, 2026
A curated list of the best tools, libraries, tutorials, and more for all things XML-related.
A list of W3C standards closely related to XML.
A collection of actively developed drafts and community-driven XML-related projects.
| Tag | Description |
|---|---|
| DOM | Libraries that support building or navigating XML trees via the Document Object Model. |
| SAX | Libraries that use event-driven parsing, emitting parsing events (start tag, end tag, etc.) instead of building an in-memory tree. |
| Validation | Support for XML schema validation (DTD, XSD, Relax NG, etc.). |
| XPath | Libraries that support querying XML documents using XPath expressions. |
| XSLT | Libraries with support for XML transformation using XSLT stylesheets. |
| Serialization | Libraries that convert between native data structures and XML (marshal/unmarshal). |
💡 Use these tags to quickly identify what capabilities each library provides. 💡
| Library Name | Language | Use Cases | Notes |
|---|---|---|---|
| libxml2 | C | DOM, SAX, Validation, XPath, XSLT | Comprehensive XML toolkit with support for various standards. |
| expat | C | SAX | Stream-oriented parser suitable for event-driven applications. |
| Mini-XML | C | SAX | Small C XML library. |
| libxml++ | C++ | DOM, SAX, Validation, XPath, XSLT | C++ wrapper for libxml2 providing an object-oriented API. |
| pugixml | C++ | DOM, XPath | Lightweight and fast XML parser with XPath support. |
| TinyXML | C++ | DOM | Simple and small XML parser for C++ applications. |
| RapidXML | C++ | DOM | High-performance XML parser with in-situ parsing capabilities. |
| Xerces-C++ | C++ | DOM, SAX, Validation | Full-featured XML parser with support for various XML standards. |
| System.Xml | C# | DOM, SAX, Validation, XPath, XSLT, Serialization | .NET's comprehensive XML processing library. |
| Dart XML | Dart | DOM | Lightweight library for parsing and building XML documents. |
| fast_xml | Erlang | SAX | Erlang XML library based on expat. |
| encoding/xml | Go | Serialization | Standard library for encoding and decoding XML. |
| xml-conduit | Haskell | DOM, Streaming | Provides parsing and rendering functions for XML with streaming support. |
| Haskell XML Toolbox | Haskell | DOM, Validation, XPath | Collection of tools for processing XML with Haskell. |
| JAXP | Java | DOM, SAX, Validation, XPath, XSLT | Java API for XML Processing supporting various standards. |
| dom4j | Java | DOM, XPath | Flexible XML framework for Java applications. |
| JDOM | Java | DOM | Java-based document object model for XML that is easy to use. |
| VTD-XML | Java | DOM, XPath | High-performance XML parser with non-extractive parsing. |
| Xerces2-J | Java | DOM, SAX, Validation | Java version of Xerces with comprehensive XML support. |
| DOMParser | JavaScript | DOM | Built-in browser API for parsing XML documents. |
| xml-js | JavaScript | DOM | Converts XML text to JavaScript objects and vice versa. |
| xml2js | JavaScript | DOM | Simple XML to JavaScript object converter. |
| fast-xml-parser | JavaScript | DOM | Fast and lightweight XML parser for JavaScript. |
| XmlUtil | Kotlin | DOM | Utility functions for XML processing in Kotlin. |
| XML::Parser | Perl | SAX | Perl module for parsing XML documents. |
| XML::LibXML | Perl | DOM, XPath, Validation | Interface to the libxml2 library for Perl. |
| XML::Simple | Perl | DOM | Simple API for reading and writing XML. |
| SimpleXML | PHP | DOM | Provides a simple way to access XML elements. |
| xml.etree.ElementTree | Python | DOM | Lightweight XML parser and tree builder. |
| lxml | Python | DOM, XPath, XSLT, Validation | Powerful and feature-rich XML processing library. |
| xml.dom.minidom | Python | DOM | Minimal implementation of the Document Object Model interface. |
| Nokogiri | Ruby | DOM, XPath, XSLT | HTML, XML, SAX, and Reader parser with XPath and CSS selector support. |
| REXML | Ruby | DOM | Pure Ruby XML processor conforming to the XML 1.0 specification. |
| xml-rs | Rust | SAX | Event-based XML parser for Rust. |
| quick-xml | Rust | SAX | Fast and low-level XML reader and writer. |
| scala-xml | Scala | DOM | XML processing library for Scala. |
| SWXMLHash | Swift | DOM | Simple XML parser for Swift. |
| AEXML | Swift | DOM | Lightweight XML parser for iOS and macOS. |
A collection of command-line tools for XML processing.
A small excerpt of the many online tools for XML processing.
A list of XML databases that store and query XML data natively.
A curated list of popular formats and languages that use the XML syntax (often defined via a schema). A more extensive, but less curated list can be found here.
❗ The goal for this section is to have a list of established formats with links to resources, such as specifications, schemas, and tutorials. Feel free to contribute! ❗
A list of tutorials that provide a good introduction to the XML ecosystem.
Note that many of these books are available online for free - a quick Google search should suffice. 😉
These are standalone XML editors with the inherent capability to validate XML against a DTD or schema. Browser-based XML editors (such as under Browser Extensions) and general text editors like Notepad++ and Vim are not included.
Contributions are welcome! Read the contribution guidelines first.
422 followers · starred Jan 2026
79 followers · starred Sep 2024
A curated list of awesome XML standards, libraries and resources.
45
55 commits
updated Aug 31, 2026
A curated list of the best tools, libraries, tutorials, and more for all things XML-related.
A list of W3C standards closely related to XML.
A collection of actively developed drafts and community-driven XML-related projects.
| Tag | Description |
|---|---|
| DOM | Libraries that support building or navigating XML trees via the Document Object Model. |
| SAX | Libraries that use event-driven parsing, emitting parsing events (start tag, end tag, etc.) instead of building an in-memory tree. |
| Validation | Support for XML schema validation (DTD, XSD, Relax NG, etc.). |
| XPath | Libraries that support querying XML documents using XPath expressions. |
| XSLT | Libraries with support for XML transformation using XSLT stylesheets. |
| Serialization | Libraries that convert between native data structures and XML (marshal/unmarshal). |
💡 Use these tags to quickly identify what capabilities each library provides. 💡
| Library Name | Language | Use Cases | Notes |
|---|---|---|---|
| libxml2 | C | DOM, SAX, Validation, XPath, XSLT | Comprehensive XML toolkit with support for various standards. |
| expat | C | SAX | Stream-oriented parser suitable for event-driven applications. |
| Mini-XML | C | SAX | Small C XML library. |
| libxml++ | C++ | DOM, SAX, Validation, XPath, XSLT | C++ wrapper for libxml2 providing an object-oriented API. |
| pugixml | C++ | DOM, XPath | Lightweight and fast XML parser with XPath support. |
| TinyXML | C++ | DOM | Simple and small XML parser for C++ applications. |
| RapidXML | C++ | DOM | High-performance XML parser with in-situ parsing capabilities. |
| Xerces-C++ | C++ | DOM, SAX, Validation | Full-featured XML parser with support for various XML standards. |
| System.Xml | C# | DOM, SAX, Validation, XPath, XSLT, Serialization | .NET's comprehensive XML processing library. |
| Dart XML | Dart | DOM | Lightweight library for parsing and building XML documents. |
| fast_xml | Erlang | SAX | Erlang XML library based on expat. |
| encoding/xml | Go | Serialization | Standard library for encoding and decoding XML. |
| xml-conduit | Haskell | DOM, Streaming | Provides parsing and rendering functions for XML with streaming support. |
| Haskell XML Toolbox | Haskell | DOM, Validation, XPath | Collection of tools for processing XML with Haskell. |
| JAXP | Java | DOM, SAX, Validation, XPath, XSLT | Java API for XML Processing supporting various standards. |
| dom4j | Java | DOM, XPath | Flexible XML framework for Java applications. |
| JDOM | Java | DOM | Java-based document object model for XML that is easy to use. |
| VTD-XML | Java | DOM, XPath | High-performance XML parser with non-extractive parsing. |
| Xerces2-J | Java | DOM, SAX, Validation | Java version of Xerces with comprehensive XML support. |
| DOMParser | JavaScript | DOM | Built-in browser API for parsing XML documents. |
| xml-js | JavaScript | DOM | Converts XML text to JavaScript objects and vice versa. |
| xml2js | JavaScript | DOM | Simple XML to JavaScript object converter. |
| fast-xml-parser | JavaScript | DOM | Fast and lightweight XML parser for JavaScript. |
| XmlUtil | Kotlin | DOM | Utility functions for XML processing in Kotlin. |
| XML::Parser | Perl | SAX | Perl module for parsing XML documents. |
| XML::LibXML | Perl | DOM, XPath, Validation | Interface to the libxml2 library for Perl. |
| XML::Simple | Perl | DOM | Simple API for reading and writing XML. |
| SimpleXML | PHP | DOM | Provides a simple way to access XML elements. |
| xml.etree.ElementTree | Python | DOM | Lightweight XML parser and tree builder. |
| lxml | Python | DOM, XPath, XSLT, Validation | Powerful and feature-rich XML processing library. |
| xml.dom.minidom | Python | DOM | Minimal implementation of the Document Object Model interface. |
| Nokogiri | Ruby | DOM, XPath, XSLT | HTML, XML, SAX, and Reader parser with XPath and CSS selector support. |
| REXML | Ruby | DOM | Pure Ruby XML processor conforming to the XML 1.0 specification. |
| xml-rs | Rust | SAX | Event-based XML parser for Rust. |
| quick-xml | Rust | SAX | Fast and low-level XML reader and writer. |
| scala-xml | Scala | DOM | XML processing library for Scala. |
| SWXMLHash | Swift | DOM | Simple XML parser for Swift. |
| AEXML | Swift | DOM | Lightweight XML parser for iOS and macOS. |
A collection of command-line tools for XML processing.
A small excerpt of the many online tools for XML processing.
A list of XML databases that store and query XML data natively.
A curated list of popular formats and languages that use the XML syntax (often defined via a schema). A more extensive, but less curated list can be found here.
❗ The goal for this section is to have a list of established formats with links to resources, such as specifications, schemas, and tutorials. Feel free to contribute! ❗
A list of tutorials that provide a good introduction to the XML ecosystem.
Note that many of these books are available online for free - a quick Google search should suffice. 😉
These are standalone XML editors with the inherent capability to validate XML against a DTD or schema. Browser-based XML editors (such as under Browser Extensions) and general text editors like Notepad++ and Vim are not included.
Contributions are welcome! Read the contribution guidelines first.
422 followers · starred Jan 2026
79 followers · starred Sep 2024