Как остановить парсер? - PullRequest
       3

Как остановить парсер?

0 голосов
/ 18 января 2012

Я использую node.js и модуль SAX для разбора моих документов XML.

Я хотел бы заблокировать (прервать) синтаксический анализатор, когда найду нужный мне узел.

Я пытался parser.close(), но я получаю эту ошибку:

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

Как я могу заблокировать это, не анализируя остальную часть документа, что это бесполезно для меня?

Спасибо

1 Ответ

2 голосов
/ 18 января 2012

Если вы посмотрите на код модуля 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.write () после выполнения parser.close (), и вы должны быть установлены.

...