如何停止解析器?

时间:2012-01-18 12:39:33

标签: node.js sax

我正在使用node.js和SAX模块来解析我的XML文档。

当我找到我正在寻找的节点时,我想阻止(中止)解析器。

我试过了parser.close(),但我收到了这个错误:

  if (this.error) throw this.error
                            ^
Error: Unexpected end
Line: 1
Column: 59

如何在不解析对我没用的文档的其余部分的情况下阻止它?

谢谢

1 个答案:

答案 0 :(得分:2)

如果查看SAX模块的代码,可以看到抛出该错误的原因。

https://github.com/isaacs/sax-js/blob/master/lib/sax.js#L585

如果在设置错误后尝试调用parser.write(),则会抛出错误。如果在中间解析中调用parser.close(),则可能会设置错误。

https://github.com/isaacs/sax-js/blob/master/lib/sax.js#L354

在执行parser.close()之后不要调用parser.write(),你应该设置它。