Socket
Socket
Sign inDemoInstall

xmlbuilder

Package Overview
Dependencies
1
Maintainers
1
Versions
98
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

xmlbuilder


Version published
Weekly downloads
20M
decreased by-19.09%
Maintainers
1
Created
Weekly downloads
 

Package description

What is xmlbuilder?

The xmlbuilder npm package is a utility that allows for the easy creation of XML documents with a simple and readable API. It provides a way to build XML documents from JavaScript objects, and it supports various customization options for attributes, namespaces, and more.

What are xmlbuilder's main functionalities?

Creating an XML document

This feature allows you to create a complete XML document. You can specify attributes with '@' and text content with '#text'.

{"root":{"xmlbuilder":{"@version":"1.0","@encoding":"UTF-8","foo":{"@bar":"baz","#text":"Hello xmlbuilder!"}}}}

Customizing XML declaration

This feature allows you to customize the XML declaration by specifying the version, encoding, and standalone attributes.

{"declaration":{"@version":"1.0","@encoding":"UTF-8","@standalone":"yes"},"root":{"foo":"bar"}}

Adding attributes

This feature allows you to add attributes to an element. Attributes are prefixed with '@' and can be combined with text content.

{"root":{"ele":{"@id":"1","@name":"test","#text":"An element with attributes"}}}

Creating comments

This feature allows you to insert comments into your XML document using the '#comment' key.

{"root":{"#comment":"This is a comment","foo":"bar"}}

Building from an object

This feature allows you to build an XML document from a JavaScript object, with nested elements represented as nested objects.

{"root":{"ele":{"subele":"text","subele2":"text2"}}}

Other packages similar to xmlbuilder

Changelog

Source

[7.0.0] - 2016-03-21

  • Processing instructions are now created as regular nodes. This is a major breaking change if you are using processing instructions. Previously processing instructions were inserted before their parent node. After this change processing instructions are appended to the children of the parent node. Note that it is not currently possible to insert processing instructions before or after the root element.

    root.ele('node').ins('pi');
    // pre-v7
    <?pi?><node/>
    // v7
    <node><?pi?></node>
    

Readme

Source

xmlbuilder-js

An XML builder for node.js similar to java-xmlbuilder.

License NPM Version NPM Downloads

Build Status Dependency Status Dev Dependency Status Code Coverage

Installation:

npm install xmlbuilder

Usage:

var builder = require('xmlbuilder');
var xml = builder.create('root')
  .ele('xmlbuilder')
    .ele('repo', {'type': 'git'}, 'git://github.com/oozcitak/xmlbuilder-js.git')
  .end({ pretty: true});
    
console.log(xml);

will result in:

<?xml version="1.0"?>
<root>
  <xmlbuilder>
    <repo type="git">git://github.com/oozcitak/xmlbuilder-js.git</repo>
  </xmlbuilder>
</root>

It is also possible to convert objects into nodes:

builder.create({
  root: {
    xmlbuilder: {
      repo: {
        '@type': 'git', // attributes start with @
        '#text': 'git://github.com/oozcitak/xmlbuilder-js.git' // text node
      }
    }
  }
});

If you need to do some processing:

var root = builder.create('squares');
root.com('f(x) = x^2');
for(var i = 1; i <= 5; i++)
{
  var item = root.ele('data');
  item.att('x', i);
  item.att('y', i * i);
}

This will result in:

<?xml version="1.0"?>
<squares>
  <!-- f(x) = x^2 -->
  <data x="1" y="1"/>
  <data x="2" y="4"/>
  <data x="3" y="9"/>
  <data x="4" y="16"/>
  <data x="5" y="25"/>
</squares>

See the wiki for details.

Keywords

FAQs

Last updated on 20 Mar 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc