Sample code for 30+ languages & platforms
Zig

Create XML with Multiple Same-Tag Children

See more XML Examples

Demonstrates how to create XML where siblings have the identical tags.

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

    // This example creates the following XML:

    // <soap:Envelope>
    //     <soap:Body>
    //         <S:AlternatePartyIds>
    //             <S:Id>123456789</S:Id>
    //             <S:AssigningPartyId>NationalId</S:AssigningPartyId>
    //         </S:AlternatePartyIds>
    //         <S:AlternatePartyIds>
    //             <S:Id>987654</S:Id>
    //             <S:AssigningPartyId>DriversLicense</S:AssigningPartyId>
    //             <S:IssuingState>SD</S:IssuingState>
    //         </S:AlternatePartyIds>
    //     </soap:Body>
    // </soap:Envelope>

    const xml = try chilkat.Xml.init();
    defer xml.deinit();
    xml.setTag("soap:Envelope");
    xml.updateChildContent("soap:Body|S:AlternatePartyIds|S:Id", "123456789");
    xml.updateChildContent("soap:Body|S:AlternatePartyIds|S:AssigningPartyId", "NationalId");
    xml.updateChildContent("soap:Body|S:AlternatePartyIds[1]|S:Id", "987654");
    xml.updateChildContent("soap:Body|S:AlternatePartyIds[1]|S:AssigningPartyId", "DriversLicense");
    xml.updateChildContent("soap:Body|S:AlternatePartyIds[1]|S:IssuingState", "SD");

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