serialize-xml Test deno doc codebeat badge

A simple deno module for serializing objects to XML.

Usage

There is one concept here:

  • Tag - representing a tag, like <this></this>

Examples

import  { serialize, tag } from "https://raw.githubusercontent.com/olaven/serialize-xml/v0.3.2/mod.ts"

//<name></name>
const without_children = serialize(tag("name"))
//<name>children</name>
const without_attributes = serialize(tag("name", "children"))
//<name key="value">children</name>
const full_tag = serialize(tag("name", "children", [["key", "value"]]))

const xml = serialize(
    tag("outer", 
        [
            tag("inner", "content")
        ], 
        [
            ["key", "value"]
        ]
    )
); 

//prints: <outer><inner key="value">content</inner></outer>
console.log("serialized: ", xml);

Serialze XML declarations

import { serialize, declaration } from "https://raw.githubusercontent.com/olaven/serialize-xml/v0.3.2/mod.ts"; 
const xml = serialize(declaration([["version", "1.0"]]));

//prints: <?xml version="1.0"?>
console.log("serialized declaration", xml);

Multiple parens

``typescript

/* */

const xml = serialize( declaration([["version", "1.0"]]), tag("first_parent"), tag("second_parent", [ tag("child") ]) ); ``

Alternatively, build tags by passing an object.

import  { serialize } from "https://raw.githubusercontent.com/olaven/serialize-xml/v0.3.2/mod.ts"

const xml = serialize({
    name: "my_tag_name", 
    children: [
        {
            name: "sub_tag", 
            children: "inner_content_of_tag", 
            attributes: [
                ["attribute_key", "attribute_value"]
            ]
        }
    ],
    attributes: []
});

//prints: '<my_tag_name><sub_tag attribute_key="attribute_value">inner_content_of_tag</sub_tag></my_tag_name>'
console.log("serialized: ", xml);