| { |
| "_args": [ |
| [ |
| { |
| "raw": "elementtree@0.1.6", |
| "scope": null, |
| "escapedName": "elementtree", |
| "name": "elementtree", |
| "rawSpec": "0.1.6", |
| "spec": "0.1.6", |
| "type": "version" |
| }, |
| "/Users/steveng/repo/cordova/cordova-browser/node_modules/cordova-common" |
| ] |
| ], |
| "_from": "elementtree@0.1.6", |
| "_id": "elementtree@0.1.6", |
| "_inCache": true, |
| "_location": "/elementtree", |
| "_npmUser": { |
| "name": "rphillips", |
| "email": "ryan@trolocsis.com" |
| }, |
| "_npmVersion": "1.3.24", |
| "_phantomChildren": {}, |
| "_requested": { |
| "raw": "elementtree@0.1.6", |
| "scope": null, |
| "escapedName": "elementtree", |
| "name": "elementtree", |
| "rawSpec": "0.1.6", |
| "spec": "0.1.6", |
| "type": "version" |
| }, |
| "_requiredBy": [ |
| "/cordova-common" |
| ], |
| "_resolved": "http://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz", |
| "_shasum": "2ac4c46ea30516c8c4cbdb5e3ac7418e592de20c", |
| "_shrinkwrap": null, |
| "_spec": "elementtree@0.1.6", |
| "_where": "/Users/steveng/repo/cordova/cordova-browser/node_modules/cordova-common", |
| "author": { |
| "name": "Rackspace US, Inc." |
| }, |
| "bugs": { |
| "url": "https://github.com/racker/node-elementtree/issues" |
| }, |
| "contributors": [ |
| { |
| "name": "Paul Querna", |
| "email": "paul.querna@rackspace.com" |
| }, |
| { |
| "name": "Tomaz Muraus", |
| "email": "tomaz.muraus@rackspace.com" |
| } |
| ], |
| "dependencies": { |
| "sax": "0.3.5" |
| }, |
| "description": "XML Serialization and Parsing module based on Python's ElementTree.", |
| "devDependencies": { |
| "whiskey": "0.8.x" |
| }, |
| "directories": { |
| "lib": "lib" |
| }, |
| "dist": { |
| "shasum": "2ac4c46ea30516c8c4cbdb5e3ac7418e592de20c", |
| "tarball": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz" |
| }, |
| "engines": { |
| "node": ">= 0.4.0" |
| }, |
| "homepage": "https://github.com/racker/node-elementtree", |
| "keywords": [ |
| "xml", |
| "sax", |
| "parser", |
| "seralization", |
| "elementtree" |
| ], |
| "licenses": [ |
| { |
| "type": "Apache", |
| "url": "http://www.apache.org/licenses/LICENSE-2.0.html" |
| } |
| ], |
| "main": "lib/elementtree.js", |
| "maintainers": [ |
| { |
| "name": "rphillips", |
| "email": "ryan@trolocsis.com" |
| } |
| ], |
| "name": "elementtree", |
| "optionalDependencies": {}, |
| "readme": "node-elementtree\n====================\n\nnode-elementtree is a [Node.js](http://nodejs.org) XML parser and serializer based upon the [Python ElementTree v1.3](http://effbot.org/zone/element-index.htm) module.\n\nInstallation\n====================\n\n $ npm install elementtree\n \nUsing the library\n====================\n\nFor the usage refer to the Python ElementTree library documentation - [http://effbot.org/zone/element-index.htm#usage](http://effbot.org/zone/element-index.htm#usage).\n\nSupported XPath expressions in `find`, `findall` and `findtext` methods are listed on [http://effbot.org/zone/element-xpath.htm](http://effbot.org/zone/element-xpath.htm).\n\nExample 1 – Creating An XML Document\n====================\n\nThis example shows how to build a valid XML document that can be published to\nAtom Hopper. Atom Hopper is used internally as a bridge from products all the\nway to collecting revenue, called “Usage.” MaaS and other products send similar\nevents to it every time user performs an action on a resource\n(e.g. creates,updates or deletes). Below is an example of leveraging the API\nto create a new XML document.\n\n```javascript\nvar et = require('elementtree');\nvar XML = et.XML;\nvar ElementTree = et.ElementTree;\nvar element = et.Element;\nvar subElement = et.SubElement;\n\nvar date, root, tenantId, serviceName, eventType, usageId, dataCenter, region,\nchecks, resourceId, category, startTime, resourceName, etree, xml;\n\ndate = new Date();\n\nroot = element('entry');\nroot.set('xmlns', 'http://www.w3.org/2005/Atom');\n\ntenantId = subElement(root, 'TenantId');\ntenantId.text = '12345';\n\nserviceName = subElement(root, 'ServiceName');\nserviceName.text = 'MaaS';\n\nresourceId = subElement(root, 'ResourceID');\nresourceId.text = 'enAAAA';\n\nusageId = subElement(root, 'UsageID');\nusageId.text = '550e8400-e29b-41d4-a716-446655440000';\n\neventType = subElement(root, 'EventType');\neventType.text = 'create';\n\ncategory = subElement(root, 'category');\ncategory.set('term', 'monitoring.entity.create');\n\ndataCenter = subElement(root, 'DataCenter');\ndataCenter.text = 'global';\n\nregion = subElement(root, 'Region');\nregion.text = 'global';\n\nstartTime = subElement(root, 'StartTime');\nstartTime.text = date;\n\nresourceName = subElement(root, 'ResourceName');\nresourceName.text = 'entity';\n\netree = new ElementTree(root);\nxml = etree.write({'xml_declaration': false});\nconsole.log(xml);\n```\n\nAs you can see, both et.Element and et.SubElement are factory methods which\nreturn a new instance of Element and SubElement class, respectively.\nWhen you create a new element (tag) you can use set method to set an attribute.\nTo set the tag value, assign a value to the .text attribute.\n\nThis example would output a document that looks like this:\n\n```xml\n<entry xmlns=\"http://www.w3.org/2005/Atom\">\n <TenantId>12345</TenantId>\n <ServiceName>MaaS</ServiceName>\n <ResourceID>enAAAA</ResourceID>\n <UsageID>550e8400-e29b-41d4-a716-446655440000</UsageID>\n <EventType>create</EventType>\n <category term=\"monitoring.entity.create\"/>\n <DataCenter>global</DataCenter>\n <Region>global</Region>\n <StartTime>Sun Apr 29 2012 16:37:32 GMT-0700 (PDT)</StartTime>\n <ResourceName>entity</ResourceName>\n</entry>\n```\n\nExample 2 – Parsing An XML Document\n====================\n\nThis example shows how to parse an XML document and use simple XPath selectors.\nFor demonstration purposes, we will use the XML document located at\nhttps://gist.github.com/2554343.\n\nBehind the scenes, node-elementtree uses Isaac’s sax library for parsing XML,\nbut the library has a concept of “parsers,” which means it’s pretty simple to\nadd support for a different parser.\n\n```javascript\nvar fs = require('fs');\n\nvar et = require('elementtree');\n\nvar XML = et.XML;\nvar ElementTree = et.ElementTree;\nvar element = et.Element;\nvar subElement = et.SubElement;\n\nvar data, etree;\n\ndata = fs.readFileSync('document.xml').toString();\netree = et.parse(data);\n\nconsole.log(etree.findall('./entry/TenantId').length); // 2\nconsole.log(etree.findtext('./entry/ServiceName')); // MaaS\nconsole.log(etree.findall('./entry/category')[0].get('term')); // monitoring.entity.create\nconsole.log(etree.findall('*/category/[@term=\"monitoring.entity.update\"]').length); // 1\n```\n\nBuild status\n====================\n\n[![Build Status](https://secure.travis-ci.org/racker/node-elementtree.png)](http://travis-ci.org/racker/node-elementtree)\n\n\nLicense\n====================\n\nnode-elementtree is distributed under the [Apache license](http://www.apache.org/licenses/LICENSE-2.0.html).\n", |
| "readmeFilename": "README.md", |
| "repository": { |
| "type": "git", |
| "url": "git://github.com/racker/node-elementtree.git" |
| }, |
| "scripts": { |
| "test": "make test" |
| }, |
| "version": "0.1.6" |
| } |