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
- Host: GitHub
- URL: https://github.com/tonis2/xml.c3
- Owner: tonis2
- License: apache-2.0
- Created: 2024-08-11T18:56:51.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-29T16:03:32.000Z (5 months ago)
- Last Synced: 2026-01-30T04:43:27.707Z (5 months ago)
- Topics: c3, c3lang, xml
- Language: C3
- Homepage:
- Size: 276 KB
- Stars: 3
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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);
```