Sample code for 30+ languages & platforms
Zig

HasChildWithTag using a Tag Path

Demonstrates calling HasChildWithTag with a tag path.

Chilkat Zig Downloads

Zig
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();

    xml.setTag("world");

    xml.newChild2("north_america|united_states|california|san_francisco", "Silicon Valley");
    xml.newChild2("north_america|united_states|california|san_diego", "Birthplace of California");
    xml.newChild2("north_america|united_states|illinois|chicago", "Windy City");

    std.debug.print("{s}\n", .{try xml.getXml(alloc)});

    // Produces the following XML
    //
    //     <?xml version="1.0" encoding="utf-8" ?>
    //     <world>
    //         <north_america>
    //             <united_states>
    //                 <california>
    //                     <san_francisco>Silicon Valley</san_francisco>
    //                     <san_diego>Birthplace of California</san_diego>
    //                 </california>
    //                 <illinois>
    //                     <chicago>Windy City</chicago>
    //                 </illinois>
    //             </united_states>
    //         </north_america>
    //     </world>
    //

    const has_chicago = xml.hasChildWithTag("north_america|united_states|illinois|chicago");
    std.debug.print("hasChicago = {}\n", .{has_chicago});

    const has_naperville = xml.hasChildWithTag("north_america|united_states|illinois|naperville");
    std.debug.print("hasNaperville = {}\n", .{has_naperville});

    const has_illinois = xml.hasChildWithTag("north_america|united_states|illinois");
    std.debug.print("hasIllinois = {}\n", .{has_illinois});
}