2012-03-15 107 views
2

是否可以使用SAXParser逐行解析xml文件?SAX和逐行解析Java

+3

当打开和关闭标签不在同一行时,您会期望它做什么? – 2012-03-15 15:19:33

+0

我不认为有什么理由可以降低一个问题,毕竟这是一个有两个逻辑回答yes或no的问题。 – bluesman 2012-03-15 15:21:03

+0

我想逐行读取文件,并用SAX解析它,并且是否满足将解析的行写入新文件的条件。 – mpele 2012-03-15 16:07:45

回答

2

最简单的方法是将每行传递给第二个线程。例如通过PipedInputStream。

将来你可能能够在Java 8或9中使用延续?在同一个线程中使用解析器。

SAX解析器应该为您提供每个完整的事件,它可以为您给它的行。

顺便说一句:在过去我写了一个“推”解析器来做到这一点,但我不知道任何标准的SAX解析将在一个线程中做到这一点。

0

我不知道这是否会帮助你的情况,买SAX是基于这意味着你可以在某个标签的标准编写代码的事件是通过扩展了DefaultHandler匹配:

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

有很多方法以覆盖,看看:http://www.java2s.com/Code/Java/XML/SAXeventhandler.htm

希望这可以帮助!