使用 Node.js/Express/xml2js 解析具有多个 <?xml> 标记的 XML 文件
Parsing an XML file with multiple <?xml> tags using Node.js/Express/xml2js
我的问题如下:
我正在使用 express.js
下载 xml 文件,然后解析该文件。现在它看起来像这样:
<?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 声明和单个根元素。类似于:
<?xml version=“1.0” encoding=“utf-8”>
<items>
<item>…</item>
<item>…</item>
</items>
如果您对生成没有任何控制,您可能应该将其拆分并分别解析文档,或者将它们连接起来并生成类似于上述文档的文档。
我的问题如下:
我正在使用 express.js
下载 xml 文件,然后解析该文件。现在它看起来像这样:
<?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 声明和单个根元素。类似于:
<?xml version=“1.0” encoding=“utf-8”>
<items>
<item>…</item>
<item>…</item>
</items>
如果您对生成没有任何控制,您可能应该将其拆分并分别解析文档,或者将它们连接起来并生成类似于上述文档的文档。