document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-141604\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"kd\">function<\/span> <span class=\"nx\">xmlEscape<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC2\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"nx\">s<\/span><span class=\"p\">.<\/span><span class=\"nx\">replace<\/span><span class=\"p\">(<\/span><span class=\"sr\">/[&lt;&gt;&amp;&quot;]/g<\/span><span class=\"p\">,<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">(<\/span><span class=\"nx\">c<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC3\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"s2\">&quot;&amp;&quot;<\/span><\/div><div class=\"line\" id=\"LC4\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"o\">+<\/span> <span class=\"p\">{<\/span> <span class=\"s2\">&quot;&lt;&quot;<\/span><span class=\"o\">:<\/span> <span class=\"s2\">&quot;lt&quot;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&quot;&gt;&quot;<\/span><span class=\"o\">:<\/span> <span class=\"s2\">&quot;gt&quot;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&quot;&amp;&quot;<\/span><span class=\"o\">:<\/span> <span class=\"s2\">&quot;amp&quot;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&quot;\\&quot;&quot;<\/span><span class=\"o\">:<\/span> <span class=\"s2\">&quot;quot&quot;<\/span> <span class=\"p\">}[<\/span><span class=\"nx\">c<\/span><span class=\"p\">]<\/span><\/div><div class=\"line\" id=\"LC5\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"o\">+<\/span> <span class=\"s2\">&quot;;&quot;<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC6\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">});<\/span><\/div><div class=\"line\" id=\"LC7\"><span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC8\">&nbsp;<\/div><div class=\"line\" id=\"LC9\"><span class=\"kd\">var<\/span> <span class=\"nx\">xml<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span> <span class=\"s2\">&quot;&amp;lt;?xml version=\\&quot;1.0\\&quot; encoding=\\&quot;UTF-8\\&quot;?&gt;\\n&quot;<\/span> <span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC10\">&nbsp;<\/div><div class=\"line\" id=\"LC11\"><span class=\"nx\">xml<\/span><span class=\"p\">.<\/span><span class=\"nx\">text<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">()<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC12\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"nb\">Array<\/span><span class=\"p\">.<\/span><span class=\"nx\">prototype<\/span><span class=\"p\">.<\/span><span class=\"nx\">push<\/span><span class=\"p\">.<\/span><span class=\"nx\">apply<\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">,<\/span> <span class=\"nx\">arguments<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"k\">this<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC14\"><span class=\"p\">};<\/span><\/div><div class=\"line\" id=\"LC15\">&nbsp;<\/div><div class=\"line\" id=\"LC16\"><span class=\"nx\">xml<\/span><span class=\"p\">.<\/span><span class=\"nx\">elem<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">(<\/span><span class=\"nx\">tagName<\/span><span class=\"p\">,<\/span> <span class=\"nx\">attrs<\/span><span class=\"p\">,<\/span> <span class=\"nx\">selfClose<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC17\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">text<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;&lt;&quot;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">tagName<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;<\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"kd\">var<\/span> <span class=\"nx\">a<\/span> <span class=\"k\">in<\/span> <span class=\"nx\">attrs<\/span> <span class=\"o\">||<\/span> <span class=\"p\">{})<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">text<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot; &quot;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">a<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&quot;=\\&quot;&quot;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">xmlEscape<\/span><span class=\"p\">(<\/span><span class=\"nb\">String<\/span><span class=\"p\">(<\/span><span class=\"nx\">attrs<\/span><span class=\"p\">[<\/span><span class=\"nx\">a<\/span><span class=\"p\">])),<\/span> <span class=\"s2\">&quot;\\&quot;&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC21\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC22\">&nbsp;<\/div><div class=\"line\" id=\"LC23\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">text<\/span><span class=\"p\">(<\/span><span class=\"nx\">selfClose<\/span> <span class=\"o\">?<\/span> <span class=\"s2\">&quot;/&quot;<\/span> <span class=\"o\">:<\/span> <span class=\"s2\">&quot;&quot;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&quot;&gt;\\n&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC24\">&nbsp;<\/div><div class=\"line\" id=\"LC25\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"k\">this<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC26\"><span class=\"p\">};<\/span><\/div><div class=\"line\" id=\"LC27\">&nbsp;<\/div><div class=\"line\" id=\"LC28\"><span class=\"nx\">xml<\/span><span class=\"p\">.<\/span><span class=\"nx\">toString<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">()<\/span> <span class=\"p\">{<\/span> <span class=\"k\">return<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">join<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;&quot;<\/span><span class=\"p\">);<\/span> <span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC29\">&nbsp;<\/div><div class=\"line\" id=\"LC30\"><span class=\"cm\">/* Usage */<\/span><\/div><div class=\"line\" id=\"LC31\">&nbsp;<\/div><div class=\"line\" id=\"LC32\"><span class=\"c1\">// Add an element with attributes<\/span><\/div><div class=\"line\" id=\"LC33\"><span class=\"nx\">xml<\/span><span class=\"p\">.<\/span><span class=\"nx\">elem<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;root&quot;<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">attrib1<\/span><span class=\"o\">:<\/span> <span class=\"s2\">&quot;hello&quot;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">attrib2<\/span><span class=\"o\">:<\/span> <span class=\"s2\">&quot;world&quot;<\/span> <span class=\"p\">});<\/span><\/div><div class=\"line\" id=\"LC34\">&nbsp;<\/div><div class=\"line\" id=\"LC35\"><span class=\"c1\">// Add a self-closing element (as child of previous)<\/span><\/div><div class=\"line\" id=\"LC36\"><span class=\"nx\">xml<\/span><span class=\"p\">.<\/span><span class=\"nx\">elem<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;child&quot;<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">attrib<\/span><span class=\"o\">:<\/span> <span class=\"mi\">42<\/span> <span class=\"p\">},<\/span> <span class=\"kc\">true<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC37\">&nbsp;<\/div><div class=\"line\" id=\"LC38\"><span class=\"c1\">// Add some nested children<\/span><\/div><div class=\"line\" id=\"LC39\"><span class=\"nx\">xml<\/span><span class=\"p\">.<\/span><span class=\"nx\">elem<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;child&quot;<\/span><span class=\"p\">).<\/span><span class=\"nx\">elem<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;nested&quot;<\/span><span class=\"p\">,<\/span> <span class=\"p\">{},<\/span> <span class=\"kc\">true<\/span><span class=\"p\">).<\/span><span class=\"nx\">elem<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;/child&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC40\">&nbsp;<\/div><div class=\"line\" id=\"LC41\"><span class=\"c1\">// Note that calls to elem() and text() can be chained<\/span><\/div><div class=\"line\" id=\"LC42\">&nbsp;<\/div><div class=\"line\" id=\"LC43\"><span class=\"c1\">// Add an element with text content<\/span><\/div><div class=\"line\" id=\"LC44\"><span class=\"nx\">xml<\/span><span class=\"p\">.<\/span><span class=\"nx\">elem<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;child&quot;<\/span><span class=\"p\">,<\/span> <span class=\"p\">{}).<\/span><span class=\"nx\">text<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;Hello World!&quot;<\/span><span class=\"p\">).<\/span><span class=\"nx\">elem<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;/child&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC45\">&nbsp;<\/div><div class=\"line\" id=\"LC46\"><span class=\"c1\">// Close the root node<\/span><\/div><div class=\"line\" id=\"LC47\"><span class=\"nx\">xml<\/span><span class=\"p\">.<\/span><span class=\"nx\">elem<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;/root&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC48\">&nbsp;<\/div><div class=\"line\" id=\"LC49\"><span class=\"c1\">// Get the generated XML<\/span><\/div><div class=\"line\" id=\"LC50\"><span class=\"nx\">alert<\/span><span class=\"p\">(<\/span><span class=\"nx\">xml<\/span><span class=\"p\">);<\/span><\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/141604/c0fcd5cef55c340abf0746f474329a4f6cd6a9e0/xmlGenerator.js\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/141604#file_xml_generator.js\" style=\"float:right;margin-right:10px;color:#666\">xmlGenerator.js<\/a>\n          <a href=\"http://gist.github.com/141604\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
