{"id":13417915,"url":"https://github.com/zeux/pugixml","last_synced_at":"2025-05-12T15:35:05.264Z","repository":{"id":37390914,"uuid":"4923301","full_name":"zeux/pugixml","owner":"zeux","description":"Light-weight, simple and fast XML parser for C++ with XPath support","archived":false,"fork":false,"pushed_at":"2025-04-17T17:48:59.000Z","size":7300,"stargazers_count":4233,"open_issues_count":22,"forks_count":759,"subscribers_count":148,"default_branch":"master","last_synced_at":"2025-04-23T17:44:49.616Z","etag":null,"topics":["dom","xml","xml-parser","xpath"],"latest_commit_sha":null,"homepage":"http://pugixml.org/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-07-06T10:51:03.000Z","updated_at":"2025-04-23T03:10:46.000Z","dependencies_parsed_at":"2023-10-15T04:51:56.340Z","dependency_job_id":"7c2b50d6-6761-403e-bdcc-8734c01f22c3","html_url":"https://github.com/zeux/pugixml","commit_stats":{"total_commits":1677,"total_committers":80,"mean_commits":20.9625,"dds":0.5384615384615384,"last_synced_commit":"ac0ef854e08c879f2250ad63d0a3a381ceb01a86"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeux%2Fpugixml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeux%2Fpugixml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeux%2Fpugixml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeux%2Fpugixml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeux","download_url":"https://codeload.github.com/zeux/pugixml/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253766387,"owners_count":21960903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dom","xml","xml-parser","xpath"],"created_at":"2024-07-30T22:00:55.347Z","updated_at":"2025-05-12T15:35:05.243Z","avatar_url":"https://github.com/zeux.png","language":"C++","readme":"pugixml [![Actions Status](https://github.com/zeux/pugixml/workflows/build/badge.svg)](https://github.com/zeux/pugixml/actions) [![Build status](https://ci.appveyor.com/api/projects/status/9hdks1doqvq8pwe7/branch/master?svg=true)](https://ci.appveyor.com/project/zeux/pugixml) [![codecov.io](https://codecov.io/github/zeux/pugixml/coverage.svg?branch=master)](https://codecov.io/github/zeux/pugixml?branch=master) ![MIT](https://img.shields.io/badge/license-MIT-blue.svg)\n=======\n\npugixml is a C++ XML processing library, which consists of a DOM-like interface with rich traversal/modification\ncapabilities, an extremely fast XML parser which constructs the DOM tree from an XML file/buffer, and an XPath 1.0\nimplementation for complex data-driven tree queries. Full Unicode support is also available, with Unicode interface\nvariants and conversions between different Unicode encodings (which happen automatically during parsing/saving).\n\npugixml is used by a lot of projects, both open-source and proprietary, for performance and easy-to-use interface.\n\n## Documentation\n\nDocumentation for the current release of pugixml is available on-line as two separate documents:\n\n* [Quick-start guide](https://pugixml.org/docs/quickstart.html), that aims to provide enough information to start using the library;\n* [Complete reference manual](https://pugixml.org/docs/manual.html), that describes all features of the library in detail.\n\nYou’re advised to start with the quick-start guide; however, many important library features are either not described in it at all or only mentioned briefly; if you require more information you should read the complete manual.\n\n## Example\n\nHere's an example of how code using pugixml looks; it opens an XML file, goes over all Tool nodes and prints tools that have a Timeout attribute greater than 0:\n\n```c++\n#include \"pugixml.hpp\"\n#include \u003ciostream\u003e\n\nint main()\n{\n    pugi::xml_document doc;\n    pugi::xml_parse_result result = doc.load_file(\"xgconsole.xml\");\n    if (!result)\n        return -1;\n        \n    for (pugi::xml_node tool: doc.child(\"Profile\").child(\"Tools\").children(\"Tool\"))\n    {\n        int timeout = tool.attribute(\"Timeout\").as_int();\n        \n        if (timeout \u003e 0)\n            std::cout \u003c\u003c \"Tool \" \u003c\u003c tool.attribute(\"Filename\").value() \u003c\u003c \" has timeout \" \u003c\u003c timeout \u003c\u003c \"\\n\";\n    }\n}\n```\n\nAnd the same example using XPath:\n\n```c++\n#include \"pugixml.hpp\"\n#include \u003ciostream\u003e\n\nint main()\n{\n    pugi::xml_document doc;\n    pugi::xml_parse_result result = doc.load_file(\"xgconsole.xml\");\n    if (!result)\n        return -1;\n        \n    pugi::xpath_node_set tools_with_timeout = doc.select_nodes(\"/Profile/Tools/Tool[@Timeout \u003e 0]\");\n    \n    for (pugi::xpath_node node: tools_with_timeout)\n    {\n        pugi::xml_node tool = node.node();\n        std::cout \u003c\u003c \"Tool \" \u003c\u003c tool.attribute(\"Filename\").value() \u003c\u003c\n            \" has timeout \" \u003c\u003c tool.attribute(\"Timeout\").as_int() \u003c\u003c \"\\n\";\n    }\n}\n```\n\n\n## License\n\nThis library is available to anybody free of charge, under the terms of MIT License (see LICENSE.md).\n\nThis work is based on the pugxml parser, which carried the following Public Domain dedication:\n\n    // Pug XML Parser - Version 1.0002\n    // --------------------------------------------------------\n    // Copyright (C) 2003, by Kristen Wegner (kristen@tima.net)\n    // Released into the Public Domain. Use at your own risk.\n    // See pugxml.xml for further information, history, etc.\n    // Contributions by Neville Franks (readonly@getsoft.com).\n","funding_links":[],"categories":["TODO scan for Android support in followings","C++","XML Tools and Frameworks","Libraries \u0026 Frameworks:","Objects - Entity, Actor","Data Formats","Tools"],"sub_categories":["In-memory data grids","JSON, XML","Saving/Loading Objects, Compositing Packets","Mesh networks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeux%2Fpugixml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeux%2Fpugixml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeux%2Fpugixml/lists"}