Skip to content

Latest commit

 

History

History
50 lines (33 loc) · 1.01 KB

README.md

File metadata and controls

50 lines (33 loc) · 1.01 KB

xml.c3

XML parser in C3


Installing

Add this file to C3 dependencies folder

And then xml to project.json like below

"dependencies": ["xml"]

Check tests for examples


Using in code

XML nodes can be searched like below

  xml::Parser parser = xml::load_file("assets/test.xml")!!;
  defer parser.free();

  Node node = parser.root;

  NodeList members;
  defer members.free();
  
  NodeList types;
  defer types.free();

  node.find(fn (node) => node.name == "member", &members);
  node.find(fn (node) => node.name == "type" && node.attributes.has_key("category"), &types);
  
  NodeList command_nodes;
  defer command_nodes.free();

  node.find(fn (node) {
      if (node.name == "command" && node.children.len() > 0) {
          if (node.attributes.has_key("api") && node.attributes["api"]!! == "vulkansc") {
               return false;
          };
          return true;
      }
      return false;
  }, &command_nodes);