我想解析一个类似于HTML文件的文件。它不完全是一个html文件。它可以包含一些用户定义的标签。我事先并不知道标签是如何预先相互嵌套的。标签也可能有属性。 我想我应该使用SAX解析器。 java有一个内置的SAX。我遇到每个标签时可以调用一个函数吗?
答案 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。只有在文档格式正确的情况下才能使用。