An open API service indexing awesome lists of open source software.

https://github.com/tonis2/xml.c3

XML parser in c3
https://github.com/tonis2/xml.c3

c3 c3lang xml

Last synced: 5 months ago
JSON representation

XML parser in c3

Awesome Lists containing this project

README

          

# xml.c3
XML parser in C3

-----
#### Installing
Add this [file](https://github.com/tonis2/xml.c3/raw/refs/heads/main/xml.c3l) 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

```c
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);
```