You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					87 lines
				
				2.5 KiB
			
		
		
			
		
	
	
					87 lines
				
				2.5 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								# xmlbuilder-js
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								An XML builder for [node.js](https://nodejs.org/) similar to
							 | 
						||
| 
								 | 
							
								[java-xmlbuilder](https://github.com/jmurty/java-xmlbuilder).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](http://opensource.org/licenses/MIT)
							 | 
						||
| 
								 | 
							
								[](https://npmjs.com/package/xmlbuilder)
							 | 
						||
| 
								 | 
							
								[](https://npmjs.com/package/xmlbuilder)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](http://travis-ci.org/oozcitak/xmlbuilder-js)
							 | 
						||
| 
								 | 
							
								[](https://ci.appveyor.com/project/oozcitak/xmlbuilder-js)
							 | 
						||
| 
								 | 
							
								[](https://david-dm.org/oozcitak/xmlbuilder-js)
							 | 
						||
| 
								 | 
							
								[](https://coveralls.io/github/oozcitak/xmlbuilder-js)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Installation:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								``` sh
							 | 
						||
| 
								 | 
							
								npm install xmlbuilder
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Usage:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								``` js
							 | 
						||
| 
								 | 
							
								var builder = require('xmlbuilder');
							 | 
						||
| 
								 | 
							
								var xml = builder.create('root')
							 | 
						||
| 
								 | 
							
								  .ele('xmlbuilder')
							 | 
						||
| 
								 | 
							
								    .ele('repo', {'type': 'git'}, 'git://github.com/oozcitak/xmlbuilder-js.git')
							 | 
						||
| 
								 | 
							
								  .end({ pretty: true});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								console.log(xml);
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								will result in:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								``` xml
							 | 
						||
| 
								 | 
							
								<?xml version="1.0"?>
							 | 
						||
| 
								 | 
							
								<root>
							 | 
						||
| 
								 | 
							
								  <xmlbuilder>
							 | 
						||
| 
								 | 
							
								    <repo type="git">git://github.com/oozcitak/xmlbuilder-js.git</repo>
							 | 
						||
| 
								 | 
							
								  </xmlbuilder>
							 | 
						||
| 
								 | 
							
								</root>
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								It is also possible to convert objects into nodes:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								``` js
							 | 
						||
| 
								 | 
							
								builder.create({
							 | 
						||
| 
								 | 
							
								  root: {
							 | 
						||
| 
								 | 
							
								    xmlbuilder: {
							 | 
						||
| 
								 | 
							
								      repo: {
							 | 
						||
| 
								 | 
							
								        '@type': 'git', // attributes start with @
							 | 
						||
| 
								 | 
							
								        '#text': 'git://github.com/oozcitak/xmlbuilder-js.git' // text node
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If you need to do some processing:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								``` js
							 | 
						||
| 
								 | 
							
								var root = builder.create('squares');
							 | 
						||
| 
								 | 
							
								root.com('f(x) = x^2');
							 | 
						||
| 
								 | 
							
								for(var i = 1; i <= 5; i++)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  var item = root.ele('data');
							 | 
						||
| 
								 | 
							
								  item.att('x', i);
							 | 
						||
| 
								 | 
							
								  item.att('y', i * i);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This will result in:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								``` xml
							 | 
						||
| 
								 | 
							
								<?xml version="1.0"?>
							 | 
						||
| 
								 | 
							
								<squares>
							 | 
						||
| 
								 | 
							
								  <!-- f(x) = x^2 -->
							 | 
						||
| 
								 | 
							
								  <data x="1" y="1"/>
							 | 
						||
| 
								 | 
							
								  <data x="2" y="4"/>
							 | 
						||
| 
								 | 
							
								  <data x="3" y="9"/>
							 | 
						||
| 
								 | 
							
								  <data x="4" y="16"/>
							 | 
						||
| 
								 | 
							
								  <data x="5" y="25"/>
							 | 
						||
| 
								 | 
							
								</squares>
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								See the [wiki](https://github.com/oozcitak/xmlbuilder-js/wiki) for details and [examples](https://github.com/oozcitak/xmlbuilder-js/wiki/Examples) for more complex examples.
							 |