使用Node.js / Express / xml2js解析具有多个<?xml>标记的XML文件

凯文·特兰

我的问题如下:

我正在使用下载XML文件express.js,然后解析该文件。现在看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE item   [ ]>
<item lang="EN" >
 <country>US</country>
 <doc-number>123123123</doc-number>
 <kind>A1</kind>
 <date>20191017</date>
</item>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE item  [ ]>
<item lang="EN" >
 <country>US</country>
 <doc-number>0938409384</doc-number>
 <kind>A2</kind>
 <date>20191018</date>
</item>

我正在使用该xml2js库,但是在获取整个文档时遇到了麻烦。我的代码看起来像这样

parseString(xml, function (err, result) {
 console.log(obj);
})

XML仅输出第一段xml我该如何解析,以便获得<item>s的数组

我的第一个想法是将文档作为字符串循环遍历,然后基于它进行拆分并以<?xml version="1.0" encoding="UTF-8"?>这种方式解析数据。

谢谢!

温尼普

我认为单个xml文档不能有多个xml声明。此外,根元素必须始终存在。

因此,原则上,您提供的xml文档是2个单独的xml文档。由于格式不正确,大多数解析器或API可能会拒绝它。

您是否可以控制文档的生成方式?如果是,则应确保将存在单个xml声明和单个root元素。类似于:

<?xml version=“1.0” encoding=“utf-8”>
<items>
  <item>…</item>
  <item>…</item>
</items>

如果您对生成没有任何控制,则可能应将其拆分并分别解析文档,或将它们串联起来以生成类似于上述文档的文档。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 xml2js 解析的问题

来自分类Dev

如何使用Node JS Express响应xml?

来自分类Dev

使用xml2js构建具有相等子键的xml?

来自分类Dev

将XML解析为JSON并使用xml2js和xmlbuilder返回...

来自分类Dev

Node.js Xml2js来自属性的结果

来自分类Dev

xml2js不解析通过代理检索的xml

来自分类Dev

使用Node.JS xml2js将XML转换为JSON时处理XML属性

来自分类Dev

使用Node.JS编辑XML文件

来自分类Dev

XML属性在Node.js xml2js中不起作用

来自分类Dev

xml2js 不返回解析的 JSON

来自分类Dev

使用XML2JS javascript读取特定节点的问题

来自分类Dev

使用lib xml2js向XML添加前缀

来自分类Dev

Node.JS找不到模块'xml2js'(Windows)

来自分类Dev

Node.js xml2js http.request 标签匹配

来自分类Dev

如何将 xml2js 响应传递给 node.js 路由中的变量?

来自分类Dev

在Angular 2中使用JS库xml2js

来自分类Dev

在Angular 2中使用JS库xml2js

来自分类Dev

在Node JS中使用fs-extra更新xml文件

来自分类Dev

如何在node.js中使用xml文件?

来自分类Dev

使用 node.js xpath xmldom 读取 XML 文件

来自分类Dev

使用Node Express JS下载文件

来自分类Dev

在Node.js中读取XML文件

来自分类Dev

xml2js:将解析器放入函数中

来自分类Dev

承诺xml2js解析函数(ES6承诺)

来自分类Dev

xml2js:将解析器放入函数中

来自分类Dev

xml2js解析-如何提取元数据属性值?

来自分类Dev

如何使用browserify模块为浏览器调整xml2js节点模块?

来自分类Dev

如何使用Node.js和Express编写多个文件

来自分类Dev

xml2js,属性名称包含连字符