{"_id":"xamel","_rev":"39-6ef7a720baa2aa46a81a42a4c3438ef5","name":"xamel","description":"Fast and cozy way to extract data from XML.","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.0":{"name":"xamel","version":"0.1.0","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"git://git@bitbucket.org/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev"},"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.0","dist":{"shasum":"a63be15bd73e2136490375e649676c9021f502c6","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.0.tgz","integrity":"sha512-kOpq5CB3xIKJwWqT99pAqm73yV78JXok7zicHYwPkgWBdSWZ87YweXMSPIV++/0b8lQgaMNRIhYs9dCF1LVTlw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE/lIE8K4z4vWzZjC+0rzFnYgAgqLTbAMXZTAqbyNfCdAiEAqXxQNdzyeBmtEpkZhf66qZbcit2Y8fT4isJJF03+JtI="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.1":{"name":"xamel","version":"0.1.1","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"git://git@bitbucket.org/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev"},"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.1","dist":{"shasum":"1b924964146a2cf79eb94d127ff54f938c717fe8","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.1.tgz","integrity":"sha512-Dgq7LU6ayO4xV2DJifF/kTX4miEEO/J4V6lZ9Qx7MJcEITR8Fw/uLwrJGImotcAAt/hOOFs0dM4Qg16tql9MVw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC49evirmvg4+ACd7zCQyUguhuDO6Q8c9i7PxqjkwsxIgIgFRWGRxwBC2XFH156qHHQtfVNuYRxPWqGobgK8Ftbt18="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.2":{"name":"xamel","version":"0.1.2","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"git://git@bitbucket.org/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev"},"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.2","dist":{"shasum":"6054b6c1281bb6e2bcc66505b541e4838c927c05","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.2.tgz","integrity":"sha512-Lrv4eEPFa+0NiyS/277YcpOy4ZunPe6AYixQjbm7jdWlqpOPeYNgazHbSekLylfLw19pQMIPEi9qt9bg4MDkxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCamkCKmBtfSTvmPBtaV3gNvQHhyeafYqbyeQcNV6tDvQIhAL3vkwnVVGRsz4XWjb+RVo96K6eeWk4ohLjQmC4jxkCa"}]},"_npmVersion":"1.1.69","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.3":{"name":"xamel","version":"0.1.3","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"git://git@bitbucket.org/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev"},"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.3","dist":{"shasum":"6283df3a31563a6e478bbf8d5ad5d0ee3c624ae5","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.3.tgz","integrity":"sha512-7KznRg/DGgd0YtT98ylUKcjNsURlLVr41VqAVwsqCCQXzi9oGICbV0R3O/Gpibrlq6Lo62WwiAKb0zJlBJmPSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDm/J8LnnlT3/ArnMZy4UsdTKIi31kziB5ArJsKPC7+sAiEAx03H+DiATKBP1A3KwR4Om945Dn2pMzvXgunqS0Gk3t8="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.4":{"name":"xamel","version":"0.1.4","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"git://git@bitbucket.org/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev"},"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.4","dist":{"shasum":"248c39c76375988a79a2905d0ba609f2b9b63576","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.4.tgz","integrity":"sha512-IZUC4qi4b1fAufalZN2VL1m4viizkwRo9cgV42x6cMdS0qhXYu8VMglbSz/+DGrJPDBKr+v7kgZ0ye+PKayUjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDDx1CWdDfwi0HOGF7XV3nyB1EHn64DG3UzFXWzSJlwEAiEAgondpXCY7SplEjdxXjnEncPpzBuZeMSuzDJuOrq8z1Q="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.5":{"name":"xamel","version":"0.1.5","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev"},"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.5","dist":{"shasum":"9eaf2ba9692f6a8ca27c7a4b41df33680d7b6ca5","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.5.tgz","integrity":"sha512-A5kJ9jqA9JFOduYj2vUeQIGcEC+KyeOGDp4sILPrjhlQam2NhtXSFk+sW7lUPL6S02Ct4SQlq3kjKspUGIVvDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHacqNNq7k7LgBXyX+YLMlS2iYszIIpoQHDFMf3ZraSeAiEAnkuUF+Yuf8A4Qt9yomgd2NYsyw6u3ZK2yzoQnhGRvuY="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.6":{"name":"xamel","version":"0.1.6","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev"},"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.6","dist":{"shasum":"73ce01f60646c1efbef8e39695d0c093ce634e57","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.6.tgz","integrity":"sha512-HXLXTGsf8D6zQ8b8LfZD9Zc6Rp0sMZJo9ZH9KFk6BxbFYAC07Wj5xSDa8RXpC7cx9J70mLRB14l6DvOYMUjEJQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICKpcVtQeQxSURaqL7m2utbKnQOAeKRcskJbs4e1yjXaAiBma4LghCsVfNBCQbLu9NqzlWovmLWBck3QXmxq2liXpw=="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.7":{"name":"xamel","version":"0.1.7","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev"},"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.7","dist":{"shasum":"7cad613ac523ebd4bf27874415f17a5c408e2d78","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.7.tgz","integrity":"sha512-b8996YksA5eXH1d0plIAFPaWvVq8PLNa+2dt7rVnpcZFnOo4SrZcSWj4bFhSd+jZA6VCuEn8vVqdkj28JwAMsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDc2CRutV5qTmLqVJ4xopo6P82VS8AOkfJV5Z0mn2hDRgIhAMQvhNqECM/j4xddGJAw3/I7frSFwelguDcN9j4NRZc8"}]},"_npmVersion":"1.1.69","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.8":{"name":"xamel","version":"0.1.8","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev"},"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.8","dist":{"shasum":"35f508b9fc9382c59cf2a6738592f62c762aa2f4","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.8.tgz","integrity":"sha512-8P6ORY065AF0J7cEoBO9Qz+TBG2zzUURTohe8Fg+gworQVjX1MiObk6yh09EwAXi2zKWcIjUE+3DLeri5ZHnUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBCgY2VqOMsUnY/QgKYY8TrG6OWruARj8H/ElwgqGcaXAiEA+I03NmDdJiBhJ6VPSFeH5F/VfMZarv9DWtskxwCIvAk="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.9":{"name":"xamel","version":"0.1.9","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev","email":"twilightfeel@gmail.com"},"contributors":[{"name":"Alexey Rybakov","email":"alexrybakov@yandex.ru"}],"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.9","dist":{"shasum":"4ad28853665539b3b50eae6577437bad9caa9499","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.9.tgz","integrity":"sha512-hu16CPmDFyFMkWDhXNJOMrDrjx2QQvmOiW6CojDu+SfwIOpLDXVIjToOKfavrD4EF9b5t53VMJp1hYwoV8P0QA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID0jEsZOP0WxpCDw6wfav1n0atdvW4Z0V/2/3EiCAwK1AiAkTpQVy0Q1KsJ/kvwC/aELtZl9ZlpOGFutHCiYpqRwQA=="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.10":{"name":"xamel","version":"0.1.10","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev","email":"twilightfeel@gmail.com"},"contributors":[{"name":"Alexey Rybakov","email":"alexrybakov@yandex.ru"}],"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.10","dist":{"shasum":"326a9db62dc8b7ecb10f88d25abcae4d8c874db5","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.10.tgz","integrity":"sha512-DGqaMdXzMTi+lJNCzsaiy3dZmvI2TXD4czsIaK1bPlh5DnLyEwpDpQAdLvOVdRgQB6U0bHpX8YXUsyp0N9Fo3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE0y1rx4SuYkT6h7gKu1JVDXWor4/nDk5cx9v/pyeyfzAiBqv899LBIXwoZED5a9oQrun1MY4M/CDa8T0qHQo6bhuQ=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.12":{"name":"xamel","version":"0.1.12","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev","email":"twilightfeel@gmail.com"},"contributors":[{"name":"Alexey Rybakov","email":"alexrybakov@yandex.ru"}],"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.12","dist":{"shasum":"81758cc6e051de2a09880ec8ba51ad6119c36668","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.12.tgz","integrity":"sha512-OI4DPwKEuuAa+BencZvSJa0LCE8TsRTZwVGoVkMxtcgO/6s0xkciH4AaXJVPTKsK+RshCJeJ9haogUxSNfsQtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIANeLs6H1Hrl0gb14+1kgNjO1E7hG7AJinmZulVNVwktAiB8ytg3Iwe/w6OxelmOoGqc6+B3cEvj9o91EA6QntYCOQ=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.13":{"name":"xamel","version":"0.1.13","description":"Fast and cozy way to extract data from XML.","main":"lib/xamel.js","scripts":{"test":"node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/kaero/node-xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev","email":"twilightfeel@gmail.com"},"contributors":[{"name":"Alexey Rybakov","email":"alexrybakov@yandex.ru"}],"license":"MIT","dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x"},"_id":"xamel@0.1.13","dist":{"shasum":"1994f79e3ac49585c4bbed5e2e05494bf10f9f5d","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.13.tgz","integrity":"sha512-KI3KH+1avW8FeQmW6Wa2p6KFNzT79kbmf83s20m5rSJXJsbxVb6hwdaoIiqZyseMDPqFTkAcHLKKJ1sbOAA9nQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAkDUYdRjYEAYtLTgOAKFktWRpzsbWf45LEDEGeQSV/gAiBIkRNEozqTg5Sd3cEc/NVtOT/ftCCOdR0HENvN6PGOiA=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}]},"0.1.14":{"name":"xamel","version":"0.1.14","description":"Fast and cozy way to extract data from XML.","main":"./lib/xamel.js","scripts":{"test":"./node_modules/.bin/jshint --config ./.jshintrc ./lib && node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/nodules/xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev","email":"twilightfeel@gmail.com","url":"https://github.com/kaero"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}],"contributors":[{"name":"Alexey Rybakov","email":"alexrybakov@yandex.ru","url":"https://github.com/flackus"}],"licenses":[{"type":"MIT","url":"https://raw.github.com/nodules/xamel/master/LICENSE"}],"dependencies":{"sax":"0.4.x"},"devDependencies":{"expresso":"0.9.x","jshint":"2.1.x"},"bugs":{"url":"https://github.com/nodules/xamel/issues"},"_id":"xamel@0.1.14","dist":{"shasum":"54a6bc8a0d4fba2325e638e1b3d5a7429b1a7b09","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.1.14.tgz","integrity":"sha512-/HNwnrFkAb+t4pBJO3NUH3VOgFZpet8spr0e8fQcD05ct1VfAdYrEUClk9d7iGSiNWg0ik+NZT8va5yH3mtCkw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDodmYkxhQf1BzY7WNXpbhpJXTxKEoRbxXjO/hK4t3+ewIhAL1+9+sQCLiWP8AwPcKjnLXCBbR+xv8Rxqwix83ml6x0"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"}},"0.2.0-pre1":{"name":"xamel","version":"0.2.0-pre1","description":"Fast and cozy way to extract data from XML.","main":"./lib/xamel.js","scripts":{"test":"jshint --config ./.jshintrc ./lib && jscs ./lib && node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/nodules/xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev","email":"twilightfeel@gmail.com","url":"https://github.com/kaero"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}],"contributors":[{"name":"Alexey Rybakov","email":"alexrybakov@yandex.ru","url":"https://github.com/flackus"}],"licenses":[{"type":"MIT","url":"https://raw.github.com/nodules/xamel/master/LICENSE"}],"dependencies":{"sax":"0.4.x","xml-writer":"1.4.x"},"devDependencies":{"expresso":"0.9.x","jshint":"2.1.x","jscs":">=1.0.5"},"bugs":{"url":"https://github.com/nodules/xamel/issues"},"_id":"xamel@0.2.0-pre1","dist":{"shasum":"322f4c51877eb8ebbfe6356be0d78d97e491b5a4","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.2.0-pre1.tgz","integrity":"sha512-SSYzFLt+D1rqURRiSeJe1GL4cHViqXBJnMZUIB6L6MWUnLJSa1bnxJHUKoDUvZnGG/DCuatmlbObMh9zFZLlDw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbZSTzeUNgGQy3/F9kOLp/3zZNS/hjMIborx2E8eAvxwIgVAtpCHVyZpXljls2NBqC0FPwajl6obCXwHIiFyBcXaQ="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"}},"0.3.0":{"name":"xamel","version":"0.3.0","description":"Fast and cozy way to extract data from XML.","main":"./lib/xamel.js","scripts":{"test":"jshint --config ./.jshintrc ./lib && jscs ./lib && node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/nodules/xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev","email":"twilightfeel@gmail.com","url":"https://github.com/kaero"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}],"contributors":[{"name":"Alexey Rybakov","email":"alexrybakov@yandex.ru","url":"https://github.com/flackus"}],"licenses":[{"type":"MIT","url":"https://raw.github.com/nodules/xamel/master/LICENSE"}],"dependencies":{"sax":"0.4.x","xml-writer":"1.4.x"},"devDependencies":{"expresso":"0.9.x","jshint":"2.1.x","jscs":">=1.0.5"},"bugs":{"url":"https://github.com/nodules/xamel/issues"},"homepage":"https://github.com/nodules/xamel","_id":"xamel@0.3.0","dist":{"shasum":"09828196c66173a7890123252d02b409def68a97","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.3.0.tgz","integrity":"sha512-GX0t6OYxT0pC0O2YjmSOHkn7NDDkxR+AGe4mfRaO/xdYTwdtEnhdYTIvkALTYhIfh0rcBlH4zNg2vNbfvojBeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB1FliytS0efetKBKipHB5OQ5NUoi8Xd/TjwZWb1TuS3AiEAsdylWMyjyaxBs+Ti3tuDVqUC2dqG7ubsCC2fGqseKFQ="}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"}},"0.3.1":{"name":"xamel","version":"0.3.1","description":"Fast and cozy way to extract data from XML.","main":"./lib/xamel.js","scripts":{"test":"jshint --config ./.jshintrc ./lib && jscs ./lib && node ./node_modules/expresso/bin/expresso"},"repository":{"type":"git","url":"https://github.com/nodules/xamel.git"},"keywords":["xml","json","parser","converter","sax"],"author":{"name":"Philipp Kovalev","email":"twilightfeel@gmail.com","url":"https://github.com/kaero"},"maintainers":[{"name":"twilightfeel","email":"twilightfeel@gmail.com"}],"contributors":[{"name":"Alexey Rybakov","email":"alexrybakov@yandex.ru","url":"https://github.com/flackus"}],"licenses":[{"type":"MIT","url":"https://raw.github.com/nodules/xamel/master/LICENSE"}],"dependencies":{"sax":"0.4.x","xml-writer":"1.4.x"},"devDependencies":{"expresso":"0.9.x","jshint":"2.1.x","jscs":">=1.0.5"},"bugs":{"url":"https://github.com/nodules/xamel/issues"},"homepage":"https://github.com/nodules/xamel","_id":"xamel@0.3.1","dist":{"shasum":"cbe9f1a60415ef3dfea1dfb9a3cf1321267a1cdc","tarball":"https://registry.npmjs.org/xamel/-/xamel-0.3.1.tgz","integrity":"sha512-gqRkNHHHH8FaQrx6M55C84GkU5jOThrN6SkWgIaqS6yNzsDpax258jdJQbNFTayXBjJdHvXxCHmjBgmNAjU2bg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCI07bsdFYM+xVLEAkUSkAv2CJUxdaY5Nrnmdt1jDjD5gIhAPT8qt1nhd78+f4LdRLbw67oWXHzIXUwtWgz44UZiv8p"}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"twilightfeel","email":"twilightfeel@gmail.com"}}},"readme":"# Xamel [![Build Status](https://secure.travis-ci.org/nodules/xamel.png)](http://travis-ci.org/nodules/xamel)\n\nXamel provides an easy way to extract data from XML using XPath-like expressions \nand map/reduce operations. It's designed to be fast and memory-friendly.\n\n## Quick start\n\n```javascript\nvar xamel = require('xamel');\n    \nxamel.parse('<data>Answer: %s<number>42</number></data>', function(err, xml) {\n    var answer = xml.$('data/number/text()');\n    console.log( xml.$('data/text()'), answer );\n});\n```\n\n## xamel.parse(xml, [options], callback)\n\n * `xml` string contains XML to parse;\n * `options` hash of parsing options, includes [sax options](https://github.com/isaacs/sax-js#arguments), incapsulates sax param `strict` as an option, and two xamel-specific options:\n   * [`buildPath`](#buildpath)\n   * `cdata` – if evaluated to `true` then `parse` process CDATA sections, `false` by default;\n * `callback` called when parsing done, passes error or null as the first argument and NodeSet as the second argument.\n\n### buildPath\n\nLets take an example:\n\nXML (article.xml)\n\n```xml\n<root>\n    <head>\n        ...\n    </head>\n    <body>\n        <article>\n            ...\n        </article>\n    </body>\n</root>\n```\n\nSuppose, you want only `<article>` and its content as result of the `parse`, so pass the `buildPath` option to the `parse`:\n\n```javascript\nvar xamel = require('xamel'),\n    xmlSource = require('fs').readFileAsync('./article.xml');\n\nxamel.parse(xmlSource, { buildPath : 'root/body/article' }, function(err, xml) {\n    if (err !== null) {\n        throw err;\n    }\n\n    console.dir(JSON.stringify(xml));\n});\n```\n\nYou can also check the [partial parsing test](https://github.com/nodules/xamel/blob/master/test/parse.js#L25).\n\n## xamel.serialize(nodeset, [options])\n\n * `nodeset` NodeSet to serialize;\n * `options` parsing options:\n   * `header` – when evaluated to `false` the document will not contain a `<?xml?>` header, `true` by default;\n   * `pretty` – when evaluated to `true` the document will be beautified with indents and line breaks, `false` by default;\n\n## NodeSets and map/reduce\n\nResult of `xamel.parse(…)` is a NodeSet. You can think of NodeSet as an array of nodes (internally it's true). \nNodeSet provides all _non-mutator_ methods of the `Array.prototype`.\n\n### Example of key-value query concatenation\n\nXML (query.xml)\n\n```xml\n<query>\n    <key name=\"mark\">Opel</key>\n    <key name=\"model\">Astra</key>\n    <key name=\"year\">2011</key>\n</query>\n```\n\nJavaScript\n\n```javascript\nvar xamel = require('xamel'),\n    xmlSource = require('fs').readFileAsync('./query.xml');\n    \nfunction buildQuery(nodeset) {\n    return nodeset.$('query/key').reduce(function(query, key) {\n        return [query, '&', key.attr('name'), '=', key.text()].join('');\n    }, '');\n}\n        \nxamel.parse(xmlSource, function(err, xml) {\n    if (err !== null) {\n        throw err;\n    }\n    buildQuery(xml);\n} );\n```\n\n## NodeSet preserves nodes' order\n\nSo processing a bad-designed xml, where order of nodes is significant, is completely possible:\n\nXML (query.xml)\n\n```xml\n<query>\n    <key>mark</key><value>Opel</value>\n    <key>model</key><value>Astra</value>\n    <key>year</key><value>2011</value>\n</query>\n```\n\nJavaScript\n\n```javascript\nfunction buildQuery(nodeset) {\n    return nodeset.$('query/*').reduce(function(query, tag) {\n        if (tag.name === 'key') {\n            return [query, '&', tag.text(), '='].join('');\n        } else {\n            return query + tag.text();\n        }\n    }, '');\n}\n```\n\n## Ok, but why we need a NodeSet? Why not a regular array?\n\nNodeSet provides some powerful methods to find, extract and process data.\n\n### find(path), $(path)\n\nThese methods traverse the tree, trying to find nodes satisfying `path` expression. \nResult is a NodeSet. `length` property should be used to check if something is found.\n\nPath looks pretty much similar to XPath, but it's not completely so. That's the path grammar in BNF:\n\n```bnf\n<path> ::= <node-check> | <path> \"/\" <node-check>\n<node-check> ::= \"node()\" | \"text()\" | \"comment()\" | \"cdata()\" | \"*\" | \"element()\" | <xml-tag-name>\n```\n\nAs described above, valid paths are:\n```\ncountry\ncountry/state/city\ncountry/*/city\n*/*/city/text()\n*\ntext()\nelement/text()\n...\n```\n\nInvalid paths:\n```\n/country        # leading '/' is not allowed\ncountry/state/  # trailing '/' is not allowed\n./state         # '.' are not supported <node-check>\n```\n\nMethod `NodeSet#$` was designed as an alias for `NodeSet#find`, but it slightly differs.\nInternally `NodeSet#$` calls `NodeSet#find`, but method returns concatenated string instead of NodeSet, if last check in the path is `text()`:\n\n```javascript\nxml.find('article/para/text()') => [ 'Text 1', 'Text of second para', ... ]\nxml.$('article/para/text()') => 'Text 1Text of second para...'\n```\n\n### text(keepArray = false)\n\nMethod returns content of text nodes in the NodeSet. Being called without an argument or with a first argument\nequals `false`, it returns a string (concatenated text nodes content). If not, result is an array of strings.\n\n```javascript\nnodeset.text(true) => ['1', '2', 'test']\nnodeset.text() => '12test'\nnodeset.text(false) => '12test'\n```\n\n### eq(index)\n\nMethod returns child node by its index.\n\n```xml\n<article>\n    <h1>Title</h1>\n    <p>Lorem ipsum…</p>\n</article>\n```\n\nJavaScript\n\n```javascript\nvar nodeset = xml.$('article/h1'),  // $ and find return NodeSet\n    title = nodeset.eq(0);          // retrieve Tag from NodeSet\n    \nconsole.log('Header level: %s', title.name[1]);  // use Tag's field\n```\n\n### hasAttr(name)\n\nMethod filters tags with attribute `name` and returns a new NodeSet.\n\n```xml\n<list>\n    <item>Home</item>\n    <item current=\"yes\">Products</item>\n    <item>About</item>\n</list>\n```\n\nJavaScript\n\n```javascript\nvar currentItemTitle = xml.find('list/item').hasAttr('current').eq(0).text();\n```\n\n### isAttr(name, value)\n\nFilters tags with `name` attribute equals `value` and returns a new NodeSet.\n\n```xml\n<list>\n    <item current=\"no\">Home</item>\n    <item current=\"yes\">Products</item>\n    <item current=\"no\">About</item>\n</list>\n```\n\nJavaScript\n\n```javascript\nvar currentItemTitle = xml.find('list/item').isAttr('current', 'yes').eq(0).text();\n```\n\n### get(expr)\n\nMethod filters nodes satisfying `expr` and returns new NodeSet. \nArgument `expr` is `<node-check>` as described above in the `NodeSet#find` section.\n\n```xml\n<media>\n    <!-- Music -->\n    <item>Pink Floyd - The Fletchers Memorial Home</item>\n    <!-- Video -->\n    <item>Kids on the slope</item>\n</media>\n```\n\nJavaScript\n\n```javascript\nvar media = xml.$('media').eq(0);\n\nmedia.get('comment()') => NodeSet contains two comments: ' Music ', ' Video '\nmedia.get('item') => NodeSet contains two elements: <item>Pink…</item>, <item>Kids…</item>\n```\n\nIt looks the same as `NodeSet#find` without traversing through the tree, \nbut `nodeset.get(<CHECK>)` is a bit faster than `nodeset.find(<CHECK>)`.\n\nMethod is used internally by `NodeSet#find`.\n\n## Types of nodes\n\n### Text\n\nText nodes are represented by strings.\n\n### Comment\n\nFields:\n * `comment` represents comment content as a string.\n\nMethods:\n * `toString()` returns `comment` field value.\n\n### Tag\n\nTag is a descendant of NodeSet, all `NodeSet.prototype` methods are available.\n\nFields:\n * `name` contains XML tag name;\n * `attrs` is a hash of attributes;\n * `parent` points to parent tag or a root NodeSet.\n\nMethods:\n * `attr(name)` returns attribute value by name, or null if attribute isn't defined.\n\n### CData\n\nMethods:\n * `getData()` returns CDATA section content;\n * `toString()` similiar to `getData`;\n * `toJSON()` returns object `{ cdata : \"cdata content …\" }`.\n\n## Why such complexity? I just want to translate XML to JSON!\n\n```javascript\nrequire('xamel').parse(xmlString, function(err, xml) {\n    if (!err) {\n        console.log( JSON.stringify(xml) );\n    }\n});\n```\n","maintainers":[{"name":"flack","email":"alexrybakov@yandex.ru"},{"name":"twilightfeel","email":"twilightfeel@gmail.com"},{"name":"varankinv","email":"nek.narqo@gmail.com"}],"time":{"modified":"2022-06-29T04:46:06.246Z","created":"2012-12-20T14:27:46.140Z","0.1.0":"2012-12-20T14:27:48.500Z","0.1.1":"2012-12-24T09:04:05.799Z","0.1.2":"2012-12-24T09:28:38.128Z","0.1.3":"2012-12-24T10:18:56.106Z","0.1.4":"2012-12-24T12:16:19.630Z","0.1.5":"2013-01-09T13:38:28.193Z","0.1.6":"2013-01-26T00:10:39.668Z","0.1.7":"2013-01-26T00:14:29.340Z","0.1.8":"2013-01-26T00:19:35.047Z","0.1.9":"2013-02-11T16:35:31.731Z","0.1.10":"2013-04-30T07:57:55.046Z","0.1.12":"2013-05-13T13:02:13.636Z","0.1.13":"2013-05-13T17:23:47.513Z","0.1.14":"2013-07-05T11:12:06.800Z","0.2.0-pre1":"2013-12-04T11:08:59.252Z","0.3.0":"2014-05-21T13:51:57.727Z","0.3.1":"2014-05-21T14:03:13.540Z"},"author":{"name":"Philipp Kovalev","email":"twilightfeel@gmail.com","url":"https://github.com/kaero"},"repository":{"type":"git","url":"https://github.com/nodules/xamel.git"},"homepage":"https://github.com/nodules/xamel","keywords":["xml","json","parser","converter","sax"],"contributors":[{"name":"Alexey Rybakov","email":"alexrybakov@yandex.ru","url":"https://github.com/flackus"}],"bugs":{"url":"https://github.com/nodules/xamel/issues"},"readmeFilename":"README.md","users":{"kbakba":true}}