libxmljs-builder v0.3.1
node-libxmljs-builder
the xml builder that wrap libxmljs
Install
$ npm install --save libxmljs-builderUsage
Create document and child nodes
var Builder = require('libxmljs-builder');
var xmlBuilder = new Builder
var doc = xmlBuilder.root('root', {attrA: 'valA', attrB: 'valB'}, function(builder) {
builder.node('nodeA', {attrC: 'valC'}, 'nodeText')
});
console.log(doc.toString());that will generate following xml:
<root attrA="valA" attrB="valB">
<nodeA attrC="valC">nodeText<nodeA>
</root>create document with nameapce
var Builder = require('libxmljs-builder');
var xmlBuilder = new Builder
xmlBuilder.defineNS {nsA: 'namespaceA', nsB: 'namespaceB'}
var doc = xmlBuilder.rootNS('nsA', 'root', {attrA: 'valA', attrB: 'valB'}, function(builder) {
builder.nodeNS('nsB', 'nodeA', {attrC: 'valC'}, 'nodeText')
});
console.log(doc.toString());that will generate the following xml:
<nsA:root xmlns:nsA="namespaceA" xmlns:nsB="namespaceB" xmlns:nsC="namespaceC" attrA="valA" attrB="valB">
<nsB:nodeA attrC="valC">nodeText</nsB:nodeA>
</nsA:root>API
class XmlBuilder
Methods
defineNS(nsobj, href)define the namespaces that xml need to use
nsObjObject|Stringif is String, it is the namespace prefix, else it's the prefix-href of namespace
hrefStringnamespace href, it's valid only if nsObj is String
returnNamespace
getNS(prefix)get the namespace object
prefixStringthe namespace's prefix
returnNamespace
root(name, attrs, content)set the root element
nameStringthe element's name
attrsObjectkey-value of attribute list
contentString|Functionif content is String, then it's element's text. if is Function, it can add children node in this function. The function's signature is
function(builder), whenbuilderisChildrenBuildertype.returnDocument
rootNS(ns, name, attrs, content)set the root element with namespace
nsStringthe namespace prefix. Other parameters are the same with the
root(name, attrs, content)method.
class ChildrenBuilder
Methods
node(name, attrs, content)define the new element. The parameters and return value is the same with
root(name, attrs, content).nodeNS(ns, name, attrs, content)define new element with namespace. The parameters and return value is the same with
rootNS(ns, name, attrs, content).
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using gulp.
License
Copyright (c) 2015 liuxiong. Licensed under the MIT license.
