jxt v4.0.2
jxt - JSON/XML Translation for the Browser
What is this?
A basic framework for translating XML to dev-friendly JSON and back again, and can be used both in the browser and in node.
Installing
$ npm install jxt
How to use it
First, we define the mapping between our XML and desired JSON:
// Create a registry instance that will track our definitions and
// extensions.
var jxt = require('jxt').createRegistry();
var helpers = jxt.utils;
var Message = jxt.define({
name: 'message',
namespace: 'jabber:client',
element: 'message',
fields: {
to: helpers.attribute('to'),
from: helpers.attribute('from'),
subject: helpers.textSub('jabber:client', 'subject'),
body: helpers.textSub('jabber:client', 'body')
}
});
Now, we can create Message
objects, and set fields and treat it just like JSON, and it will map it to XML.
var msg = new Message();
msg.to = 'foo@example.com';
msg.body = 'giving a demo of jxt';
console.log(msg.toJSON());
console.log(msg.toString());
// {to: 'foo@example.com', body: 'giving a demo of jxt'}
// <message xmlns="jabber:client" to="foo@example.com"><body>giving a demo of jxt</body></message>
Mappings can be extended:
// jxt is our registry object
var Ext = jxt.define({
name: 'demoExt',
namespace: 'jxt',
element: 'demo',
fields: {
text: jxt.text()
}
});
jxt.extend(Message, Ext);
var msg = new Message();
msg.demoExt.text = 'an extension';
console.log(msg.toJSON());
console.log(msg.toString());
// {demoExt: {text: 'an extension'}}
// <message xmlns="jabber:client"><demo xmlns="jxt">an extension</demo></message>
Predefined Field Types
- attribute
- b64Text
- boolAttribute
- boolSub
- boolSubAttribute
- dateAttribute
- dateSub
- dateSubAttribute
- enumSub
- langAttribute
- multiTextSub
- numberAttribute
- numberSub
- numberSubAttribute
- subAttribute
- langTextSub
- textSub
- text
License
Created By
If you like this, follow @lancestout on twitter.
5 years ago
5 years ago
5 years ago
6 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago