我将通过以下单独的 .java 文件解释我的 SAX 解析器的设计实现。
解析器.java
public static void main(String[] args){
Parser myParser = new Parser();
Parser.parseXML(inputFile); //may not be correct call,
//but using it to make things clear to understand
}
public void parseXML(File inputFile) {
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
SAXParser parser = factory.newSAXParser();
SaxHandler handler = new SaxHandler();
parser.parse(inputFile, handler);
} ....
}
SaxHandler.java
public class SaxHandler extends DefaultHandler {
public void startElement(String uri, String localName,
String qName, Attributes attributes) throws SAXException{
MyClass mine = new MyClass();
return mine.returnString; // I would like to have this line so that I can return
//"Hello" ultimately to the main method
}
public void characters(char ch[], int start, int length) throws SAXException {
}
public void endElement(String uri, String localName,
String qName) throws SAXException {
}
MyClass.java
public String returnString()
{
return "Hello";
}
正如我在评论中提到的,我想找到一种方法或更改我的实现,以便我可以在 main 方法中获取字符串“Hello”。在上面的实现中,问题出在 SAXHandler 的 startELement 和 endELement 方法的返回类型上。是否有任何解决方法或设计更改,以便我可以达到预期的结果?我希望我的问题很清楚。
谢谢