Zig
Zig
Xml TagPath Property Explained
See more XML Examples
Demonstrates and explains the TagPath property.Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
const xml = try chilkat.Xml.init();
defer xml.deinit();
// Load some XML:
try xml.loadXml("<a><bbb><ccc><ddd>1</ddd><ddd><z>zzz</z></ddd><ddd>3</ddd></ccc></bbb></a>");
std.debug.print("{s}\n", .{try xml.getXml(alloc)});
// This is what we have:
// <?xml version="1.0" encoding="utf-8"?>
// <a>
// <bbb>
// <ccc>
// <ddd>1</ddd>
// <ddd>
// <z>zzz</z>
// </ddd>
// <ddd>3</ddd>
// </ccc>
// </bbb>
// </a>
// The TagPath property is read-only property that returns the unique path to the
// node from the document root.
// For example:
var found: bool = if (xml.searchForTag2(xml, "z")) true else |_| false;
if (found) {
// We found a node having the tag "z".
// The TagPath property tells us the location in the document.
const tag_path = try xml.getTagPath(alloc);
std.debug.print("{s}\n", .{tag_path});
// The tagPath is bbb|ccc|ddd[1]|z
// If we to back to the document root, we can get to the given node via the tagPath.
xml.getRoot2();
std.debug.print("{s}\n", .{try xml.getTag(alloc)});
// The root tag is "a".
// Follow the tagPath to the "z" node:
found = if (xml.findChild2(tag_path)) true else |_| false;
std.debug.print("found = {}, tag = {s}\n", .{ found, try xml.getTag(alloc) });
// We are now at "z".
}
}