👇 support for Amplify Cloud and Mobile 👇
🪦 RIP Axway Amplify Titanium (2010 - 2022)
🪦 RIP Axway Amplify Cloud Services (2012 - 2022)
🪦 RIP Axway Amplify Crash Analytics (2015 - 2022)
A few of the open-source versions of Axway Amplify products will live on after Axway Amplify End-of-Life (EOL) announcements. However, all closed-source projects and most open-source projects are now dead.
👉 A group of Axway employees, ex-Axway employees, and some developers from Titanium community have created a legal org and now officially decide all matters related to future of these products.
API FAQ:
↑ Watch video on YouTube ↑
@titanium/xml2json
Configurable, lightweight XML to JSON converter for Titanium native mobile apps. Based on https://github.com/metatribal/xmlToJSON by metatribal
📝 Description
Features
- no external dependencies
- small (~3kb minified)
- simple parsing. pass either a string or xml node and get back a javascript object ( use JSON.stringify(obj) to get the string representation )
- supports attributes, text, cdata, namespaces, default namespaces, attributes with namespaces... you get the idea
- lots of rendering of options
- consistent, predictable output
- browser support - it works on IE 9+, and nearly every version of Chrome, Safari, and Firefox as well as iOS, Android, and Blackberry. (xmlToJSON will work for IE 7/8 as well if you set the xmlns option to false)
🚀 Getting Started
Install using npm:
npm install @titanium/xml2json
Usage
const xml2json = require('@titanium/xml2json');
const testString = '<xml><a>It Works!</a></xml>';
const result = xml2json.parseString(testString);
The (prettified) result of the above code is
{
"xml": {
"a": [
{
"text": "It Works!"
}
]
}
}
Options
var options = {
mergeCDATA: true,
grokAttr: true,
grokText: true,
normalize: true,
xmlns: true,
namespaceKey: '_ns',
textKey: '_text',
valueKey: '_value',
attrKey: '_attr',
cdataKey: '_cdata',
attrsAsObject: true,
stripAttrPrefix: true,
stripElemPrefix: true,
childrenAsArray: true
};
var myOptions = {
mergeCDATA: false,
xmlns: false,
attrsAsObject: false
}
result = xml2json.parseString(xmlString, myOptions);
A more complicated example (with xmlns: true)
<?xml version="1.0" encoding="UTF-8"?>
<xml xmlns="http://default.namespace.uri">
<a>
<b id="1">one</b>
<b id="2"><![CDATA[some <cdata>]]>two</b>
<ns:c xmlns:ns="http://another.namespace" ns:id="3">three</ns:c>
</a>
</xml>
results in
{
"xml": [{
"attr": {
"xmlns": {
"value": "http://default.namespace.uri"
}
},
"a": [{
"b": [{
"attr": {
"id": {
"value": 1
}
},
"text": "one"
}, {
"attr": {
"id": {
"value": 2
}
},
"text": "some <cdata>two"
}],
"c": [{
"attr": {
"xmlns:ns": {
"value": "http://another.namespace"
},
"id": {
"value": 3
}
},
"text": "three"
}]
}]
}]
}
🔗 Related Links
- Titanium Mobile - Open-source tool for building powerful, cross-platform native apps with JavaScript.
- Alloy - MVC framework built on top of Titanium Mobile.
- Appcelerator - Installer for the Appcelerator Platform tool
📚 Learn More
📣 Feedback
Have an idea or a comment? Join in the conversation here!
©️ Legal
Alloy is developed by Appcelerator and the community and is Copyright © 2012-Present by Appcelerator, Inc. All Rights Reserved.
Alloy is made available under the Apache Public License, version 2. See their license file for more information.
Appcelerator is a registered trademark of Appcelerator, Inc. Titanium is a registered trademark of Appcelerator, Inc. Please see the LEGAL information about using trademarks, privacy policy, terms of usage and other legal information at http://www.appcelerator.com/legal.