Sample code for 30+ languages & platforms
Zig

Drop/Undrop Text Formatting Tags

See more HTML-to-XML/Text Examples

Demonstrates how the DropTextFormattingTags and UndropTextFormattingTags methods work in the Html-to-Xml API.

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 assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    const html = "<html><body><p><b>Hello</b> World!<p>This is a test</body></html>";

    // Convert the above to XML
    const h2x = try chilkat.HtmlToXml.init();
    defer h2x.deinit();

    // By default, text formatting tags are dropped. Text formatting HTML tags are: b, font, i, u, br, center, em, strong, big, tt, s, small, strike, sub, and sup
    h2x.setHtml(html);
    std.debug.print("{s}\n", .{try h2x.toXml(alloc)});

    // The resulting XML is:

    // <?xml version="1.0" encoding="utf-8"?>
    // <root>
    //     <html>
    //         <body>
    //             <p>
    //                 <text>Hello World!</text>
    //             </p>
    //             <p>
    //                 <text>This is a test</text>
    //             </p>
    //         </body>
    //     </html>
    // </root>

    // To preserve text formatting tags, put the h2x instance into the mode where text formatting tags are not dropped:
    h2x.undropTextFormattingTags();

    // Convert again to see the difference:
    std.debug.print("{s}\n", .{try h2x.toXml(alloc)});

    // The resulting XML is:

    // <?xml version="1.0" encoding="utf-8"?>
    // <root>
    //     <html>
    //         <body>
    //             <p>
    //                 <b>
    //                     <text>Hello</text>
    //                 </b>
    //                 <text> World!</text>
    //             </p>
    //             <p>
    //                 <text>This is a test</text>
    //             </p>
    //         </body>
    //     </html>
    // </root>

    // Call DropTextFormattingTags to put the h2x instance back in "drop" mode.
    h2x.dropTextFormattingTags();

    // Convert again to see the difference:
    std.debug.print("{s}\n", .{try h2x.toXml(alloc)});

    // The resulting XML is:

    // <?xml version="1.0" encoding="utf-8"?>
    // <root>
    //     <html>
    //         <body>
    //             <p>
    //                 <text>Hello World!</text>
    //             </p>
    //             <p>
    //                 <text>This is a test</text>
    //             </p>
    //         </body>
    //     </html>
    // </root>
}