如何使用SAX方法在java中解析xml文档

时间:2009-08-28 15:15:47

标签: java xml parsing

我想解析一个类似于HTML文件的文件。它不完全是一个html文件。它可以包含一些用户定义的标签。我事先并不知道标签是如何预先相互嵌套的。标签也可能有属性。 我想我应该使用SAX解析器。 java有一个内置的SAX。我遇到每个标签时可以调用一个函数吗?

3 个答案:

答案 0 :(得分:4)

使用以下包裹, java.io,javax.xml.parsers中,org.xml.sax中。

SAXParserFactory spf = SAXParserFactory.newInstance();
XMLReader reader = null;

  SAXParser parser = spf.newSAXParser();
  reader = parser.getXMLReader();

reader.setContentHandler(new MyContentHandler());

//XMLReader to parse the entire file.

  InputSource is = new InputSource(filename);
  reader.parse(is);

//实现ContentHandler的方法

class MyContentHandler implements ContentHandler {
}

答案 1 :(得分:2)

我认为您应该使用StAX,这比SAX更快,更容易使用。它是Java SE 6的一部分。

答案 2 :(得分:0)

SAX最初只是Java,所以是的,Java有一个内置的SAX解析器 - http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/parsers/SAXParser.html。只有在文档格式正确的情况下才能使用。