以下の個別の .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";
}
コメントで述べたように、メイン メソッドで文字列 "Hello" を取得できるように、方法を見つけるか、実装を変更したいと考えています。上記の実装では、SAXHandler の startELement および endELement メソッドの戻り値の型に問題があります。目的の結果を達成できるようにするための回避策や設計変更はありますか? 私の質問が明確であることを願っています。
ありがとう