From 24a7064e57300840cf5add6ff47fe34174a68366 Mon Sep 17 00:00:00 2001 From: Arseny Kapoulkine Date: Thu, 12 Apr 2018 10:07:26 -0700 Subject: Update README.md Add example code --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/README.md b/README.md index c008335..2982ec2 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,56 @@ Documentation for the current release of pugixml is available on-line as two sep You’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. +## Example + +Here'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: + +```c++ +#include "pugixml.hpp" +#include + +int main() +{ + pugi::xml_document doc; + pugi::xml_parse_result result = doc.load_file("xgconsole.xml"); + if (!result) + return -1; + + for (pugi::xml_node tool: doc.child("Profile").child("Tools").children("Tool")) + { + int timeout = tool.attribute("Timeout").as_int(); + + if (timeout > 0) + std::cout << "Tool " << tool.attribute("Filename").value() << " has timeout " << timeout << "\n"; + } +} +``` + +And the same example using XPath: + +```c++ +#include "pugixml.hpp" +#include + +int main() +{ + pugi::xml_document doc; + pugi::xml_parse_result result = doc.load_file("xgconsole.xml"); + if (!result) + return -1; + + pugi::xpath_node_set tools_with_timeout = doc.select_nodes("/Profile/Tools/Tool[@Timeout > 0]"); + + for (pugi::xpath_node node: tools_with_timeout) + { + pugi::xml_node tool = node.node(); + std::cout << "Tool " << tool.attribute("Filename").value() << + " has timeout " << tool.attribute("Timeout").as_int() << "\n"; + } +} +``` + + ## License This library is available to anybody free of charge, under the terms of MIT License (see LICENSE.md). -- cgit v1.2.3