Node.js 使用nodeJS解析大型嵌套xml

Node.js 使用nodeJS解析大型嵌套xml,node.js,Node.js,我有以下嵌套的XML,我想用Node.js将解析流式传输到Postgres数据库。XML被简化为一个可复制的示例,但实际上它很大 <MarketDocument> <createdDateTime>2018-02-17T16:42:28Z</createdDateTime> <TimeSeries> <Type>A01<Type> <Period>

我有以下嵌套的XML,我想用Node.js将解析流式传输到Postgres数据库。XML被简化为一个可复制的示例,但实际上它很大

<MarketDocument>
    <createdDateTime>2018-02-17T16:42:28Z</createdDateTime>
    <TimeSeries>
        <Type>A01<Type>
        <Period>
            <Point><position>1</position></Point>
            <Point><position>2</position></Point>
        </Period>
    </TimeSeries>
    <TimeSeries>
        <Type>B01<Type>
        <Period>
            <Point><position>3</position></Point>
            <Point><position>4</position></Point>
        </Period>
    </TimeSeries>
</MarketDocument>

谢谢你的帮助

福雷特回答中提到的所有方法对我来说都很好。。
如果xml非常庞大,您可以将其拆分为几个块,然后一次处理一个块,以避免阻止整个过程

您考虑过使用流解析器吗?是的,它可以工作,但主要问题是迭代部分不确定您遇到了什么问题。。。使用流解析器,您可以监视该元素类型并在运行时输出它。如果您正在执行其他操作,则应该在将XML加载到数据库中后查询数据库。XML只是一种传输格式。当然,我会澄清的。问题是以预期的形式构造数组。我将添加codeSo,您的问题与XML解析无关?您只需要执行推送([type,pos])?谢谢您的评论。但是如何迭代例如A01呢?内置的XML解析器应该可以,不过对于繁重的解析,最好在服务器上进行,然后将其转换为JSON。。虽然问题更多的是关于大文本解析的方法,但是您是否需要帮助来理解如何首先解析它?这是完全正确的。我想在服务器端进行大文本解析。我已经用PHP编写了类似的代码,但希望它能在NodeJS中工作。谢谢你。我添加了一个例子。单独将XML拆分成块似乎有些过分——您会实现一个有状态令牌解析器吗?有很多模块可以对xml进行流式处理,比如
var XmlStream = require('xml-stream');
var stream = fs.createReadStream('./here.xml'); // or stream directly from your online source
var xml = new XmlStream(stream);

xml.on('endElement: TimeSeries', function(item) {

    // PHP-code: How do you do this in nodejs
    foreach ($item->Period->Point as $point) {
    $position = $point->position;
    $array[] = "('$Type', '$position')";
    }

});