Skip to content
jsxml is an XML library for javascript and node
JavaScript HTML
Find file
Latest commit 8238e11 zhengxie.lj code reformat


jsxml is an XML library for javascript (and node)


travis build status

Install by NPM

npm install node-jsxml

How to use?

After add this library to your project, there will be a global object named jsxml.

in HTML file, import using <script> elements.

<script src="jsxml.js"></script>

in Node, import using require function.

var jsxml = require("node-jsxml");

support AMD, CMD. Big thanks to TimSchlechter.

    alias: {
        jsxml: '../src/jsxml.js'
seajs.use('jsxml', function(jsxml){
var Namespace = jsxml.Namespace,
    QName = jsxml.QName,
    XML = jsxml.XML,
    XMLList = jsxml.XMLList;

Here you go:

var xml = new XML("<spring>" + 
             "<list id='data'>" + 
               "<element value='jsxml'/>" +
               "<element value='is'/>" +
               "<element value='an'/>" +
               "<element value='xml'/>" +
               "<element value='parser'/>" +
             "</list>" +

//find child nodes
var child = xml.child('list');

//print the xml string

//modify namespace
xml.addNamespace(new Namespace("ns", ""));
xml.children().addNamespace(new Namespace("prefix", "uri"));

//find descendants nodes
var descendants = xml.descendants('element');

//get all children
var children = xml.children();
var children = xml.child('*');

//get text node
var text = xml.text();

//get element node
var elements = xml.elements();

//get comment node
var comments = xml.comments();

//get attribute
var attribute = xml.attribute("id");

//get all attributes
var attributes = xml.attributes();

All methods above return an XML object or XMLList object, if you want to get the String type content, you should:

var xml = new XML(xmlContent);

var attrValue = xml.attribute('attrName').toString();
var attrValue = xml.attribute('attrName').getValue();

var childA = xml.child('a').toString();
var childA = xml.child('a').getValue();

If you want to modify the value, you should call method setValue:

var xml = new XML("your xml string");

var attr= xml.attribute('attrName');

var childA = xml.child('a');

You can regenerate the XML Content

var str = xml.toXMLString();

While dealing with a list of childs in XML tree, you should use XMLList API:

var list = xml.child("item");
list.each(function(item, index){
    //item is an XML

Advanced topics

You can also add, retrieve or remove namespaces:

var xml = new XML("your xml string");
var ns = xml.namespace("prefix");

var nsNew = new Namespace("prefix", 'uri');

Bugs & Feedback

Please feel free report bugs or feature requests. You can send me private message on [github], or send me an email to: []


jsxml is free to use under MIT license.

Something went wrong with that request. Please try again.