2012-03-15 8 views
2

Можно ли использовать SAXParser для синтаксического анализа XML-файла по строкам?SAX и разбор по строкам с Java

+3

Что вы ожидаете от этого, когда открытые и закрытые теги не были на одной линии? –

+0

Я не думаю, что есть причина, чтобы опросить вопрос, это ведь вопрос с двумя логическими ответами да или нет. – bluesman

+0

Я хотел бы читать файл по строкам и анализировать его с помощью SAX, и если есть какие-то условия для записи разбора строки в новый файл. – mpele

ответ

2

Простейший способ сделать это - передать каждую строку во второй поток. например через PipedInputStream.

В будущем вы могли бы использовать продолжения в Java 8 или 9 или? использовать синтаксический анализатор в том же потоке.

Парсер SAX должен предоставить вам каждое завершенное событие, которое он может использовать для линий, которые вы ему дали.

BTW: В прошлом я написал синтаксический анализатор для этого, но я не знаю какого-либо стандартного анализа SAX, который будет делать это в одном потоке.

0

Я не уверен, если это поможет вашей ситуации, купить саксофон на основе событий означает, что вы можете написать код для того, когда определенные критерии тегов подобран путем расширения DefaultHandler:

class MySAXHandler extends DefaultHandler { 
    public void startDocument() { 
    System.out.println("Start document: "); 
} 

Есть много методов для переопределения, взгляните: http://www.java2s.com/Code/Java/XML/SAXeventhandler.htm

Надеюсь, это поможет!

Смежные вопросы