1.0.3 • Published 6 years ago

xml-js-builder v1.0.3

Weekly downloads
791
License
Unlicense
Repository
github
Last release
6 years ago

xml-js-builder npm Version Build Status

This is a npm library which ease the use of XML with namespaces.

This way, parsing <tag xmlns="ns"/> will be reachable by .find('ns:tag') instead of having to check the attributes to know if it is in the right namespace.

The xmljs.XML.parse(...) can parse XML, JSON (compact and extended) from xml-js.

Install

npm install xml-js-builder

Usage

const xmljs = require('xml-js-builder');

const xml = xmljs.XML.parse(myXML);

try
{
    const text = xml.find('DAV:tag').find('DAV:subtag').findText();
    const texts = xml.find('DAV:tag').findMany('DAV:subtags').map((tag) => tag.findText());

    // [...]
}
catch(ex)
{
    console.error(ex);
}
const xmljs = require('xml-js-builder');

// <d:multistatus xmlns:d="DAV:" xmlns:x="ok:"> ... </d:multistatus>
const xml = new xmljs.XMLElementBuilder('d:multistatus', {
    'xmlns:d': 'DAV:',
    'xmlns:x': 'ok:'
});
// <d:deep xmlns="ttt:"><test/></d:deep>
xml.ele('d:deep', {
    'xmlns': 'ttt:'
}).ele('test');
// <d:node2>Ok1</d:node2>
xml.ele('d:node2').add('Ok1')
// <d:node2>Ok2</d:node2>
xml.ele('d:node2').add('Ok2')
// <d:tag/>
xml.ele('d:tag')
// <x:test/>
xml.ele('x:test')
// <d:nons>yes</d:nons>
xml.ele('nons').add('yes')
// <d:node2>Ok3</d:node2>
xml.ele('d:node2').add('Ok3')

console.log(xml.toJSON());
console.log(xml.toXML());