opixml
Opinionated XML generator and parser
Last updated 5 years ago by titarenko .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install opixml 
SYNC missed versions from official npm registry.

OpiXML

Opinionated XML generator and parser.

Build Status Coverage Status

Installation

npm i opixml --save

Description

Under the hood it's built on top of xml2js and js2xmlparser, but has unified interface and certain rules of mapping JS to XML and vice versa. You can pass options object for each library in appropriate method as second argument.

Mapping rules:

  • everything that is scalar is interperted as attribute
  • everything that is non-scalar is interpreted as node
  • with only one exception: if something is an object with one and only one scalar property _, then it will be treated as a value-node (see example)

Example

var obj = { 
	root: { 
		attr: '10', 
		subnode: { attr: 'foo' },
		othernode: { _: 'value' },
		container: {
			item: [
				{ one: { _: '1' } },
				{ two: { value: '2' } }
			]
		},
		container2: {
			item: [
				{ _: 1 },
				{ _: 2 }
			]
		}
	}
};
opixml.toXml(obj).then(console.log);
<root attr="10">
	<subnode attr="foo"/>
	<othernode>value</othernode>
	<container>
		<item>
			<one>1</one>
		</item>
		<item>
			<two value="2"/>
		</item>
	</container>
	<container2>
		<item>1</item>
		<item>2</item>
	</container2>
</root>
opixml.fromXml(xml).then(console.log); // you'd see obj deserialized from XML

License

MIT

Current Tags

  • 0.2.1                                ...           latest (4 years ago)

4 Versions

  • 0.2.1                                ...           4 years ago
  • 0.2.0                                ...           4 years ago
  • 0.1.1                                ...           5 years ago
  • 0.1.0                                ...           5 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (4)
Dev Dependencies (4)
Dependents (1)

Copyright 2014 - 2016 © taobao.org |