【问题标题】:Node.js: How to create XML filesNode.js:如何创建 XML 文件
【发布时间】:2011-11-09 06:25:12
【问题描述】:

有没有创建 XML 文件的好方法?例如,像 Builder for Rails(或任何其他方式)?

谢谢

【问题讨论】:

    标签: javascript ruby-on-rails-3 node.js


    【解决方案1】:

    看起来xmlbuilder-js 库可以为您执行此操作。如果你安装了 npm,你可以npm install xmlbuilder.

    它会让你这样做(取自他们的例子):

    var builder = require('xmlbuilder');
    var doc = builder.create('root');
    
    doc.ele('xmlbuilder')
        .att('for', 'node-js')
        .ele('repo')
          .att('type', 'git')
          .txt('git://github.com/oozcitak/xmlbuilder-js.git') 
        .up()
      .up()
      .ele('test')
        .txt('complete');
    
    console.log(doc.toString({ pretty: true }));
    

    这将导致:

    <root>
      <xmlbuilder for="node-js">
        <repo type="git">git://github.com/oozcitak/xmlbuilder-js.git</repo>
      </xmlbuilder>
      <test>complete</test>
    </root>
    

    【讨论】:

    • 我遇到了一个小问题。如果您有兴趣帮忙,我在github 发帖。
    • 感谢您的回答,在这里我找到了有关此主题的教程,希望对某人有所帮助。 programmerblog.net/generate-xml-with-nodejs-and-mysql
    • 我可以将结果写入 .xml 文件吗?
    • @BiruelRick,它会给你一个格式为xml的字符串。您可以使用fs 模块写入文件。希望这会有所帮助
    • api有点变化,最新的文档在here
    【解决方案2】:

    最近对 xmlbuilder 的更改需要将根元素名称传递给 create()

    查看工作示例

    var builder = require('xmlbuilder');
    var doc = builder.create('root')
      .ele('xmlbuilder')
        .att('for', 'node-js')
        .ele('repo')
          .att('type', 'git')
          .txt('git://github.com/oozcitak/xmlbuilder-js.git') 
          .up()
        .up()
      .ele('test')
      .txt('complete')
    .end({ pretty: true });
    console.log(doc.toString());
    

    【讨论】:

      【解决方案3】:

      xmlbuilder 已停产并由xmlbuilder2 取代,它已从头开始重新设计,以完全符合modern DOM specification。

      使用npm 安装xmlbuilder2:

      npm install xmlbuilder2
      

      一个例子,来自他们的主页,用它创建一个新的 XML 文件:

      const { create } = require('xmlbuilder2');
      
      const root = create({ version: '1.0' })
        .ele('root', { att: 'val' })
          .ele('foo')
            .ele('bar').txt('foobar').up()
          .up()
          .ele('baz').up()
        .up();
      
      // convert the XML tree to string
      const xml = root.end({ prettyPrint: true });
      console.log(xml);
      
      

      将导致:

      <?xml version="1.0"?>
      <root att="val">
        <foo>
          <bar>foobar</bar>
        </foo>
        <baz/>
      </root>
      

      【讨论】:

        猜你喜欢
        • 2018-07-29
        • 1970-01-01
        • 2011-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多