首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在node.js中导入xmlbuilder的文本文件

如何在node.js中导入xmlbuilder的文本文件
EN

Stack Overflow用户
提问于 2018-02-05 05:07:40
回答 1查看 1.2K关注 0票数 2

我使用的是xmlbuilder npm包,它看起来很强大,除了我想要将现有的xml文件导入到xmlbuilder中并操纵元素/属性等,而不是从头开始构建整个东西。是否可以使用此软件包或变通方法来完成此任务?

代码语言:javascript
运行
复制
var builder = require('xmlbuilder');
fs.readFile('my-file.txt', 'utf8', function(err, data) {  
if (err) throw err;
    //Load data into xmlbuilder?
    //
});
EN

回答 1

Stack Overflow用户

发布于 2018-04-22 06:01:41

这可以通过使用库的importDocument函数来实现,也可以根据您的需要使用其他库。关键是要认识到xmlbuilder-js和其他库中的限制,然后制定相应的策略。例如,在调用xmlbuild-js.create()之后,您不能从根目录遍历文档以获取现有的子元素,只能追加到末尾。了解了这一点,您可以计划如何在JSON中创建您的结构,或者将xml从文件导入JSON,对其进行操作,然后在JSON准备就绪时使用xmlbuilder-js.create()。或者,您可以根据需要使用importDocument插入片段。另一种策略是重新设计xml文档,使其成为片段,或者直接从其中获取片段,然后您可以在xml构建器中构建根。

下面是一个从xmlbuilder-js documentation追加文档的示例

代码语言:javascript
运行
复制
var peopleNode = xmlbuilder.create('roster').ele('people');

for (var i = 1; i <= 3; i++) {   // Create an XML fragment   person =
  xmlbuilder.create('person').att('id', i);   // Import the root node of
  the fragment after   // the people node of the main XML document  
  peopleNode.importDocument(person); 
}

例如,您可以使用xml2js-parser导入一个包含person的xml片段的文件,而不是使用xmlbuilder-js来创建person,如their docs中的示例所示

代码语言:javascript
运行
复制
const fs = require('fs');
const Parser = require('xml2js-parser');

var parser = new Parser({trim: true});
fs.readFile(__dirname + '/foo.xml', (err, xml) => {
    parser.parseString(xml, (err, result) => {
    console.dir(result);
  });
});

这就是我采取的方法,当我尝试做同样的事情时,我碰巧看到了你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48613027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档