私はJava 8でXMLファイルを解析するメソッドを作成します。 私はうまくいくでしょうが、私はparseBookObjectを使用できません。サックスの構文解析後にJavaオブジェクトを使用する
public static void parseISBN(fileObject) throws ParseException, ...
{
\t // New Book Object with Datas from FileObject
\t Book bookObject = new Book (fileObject.getPath, ...)
\t \t
\t // parse ISBN with marc21
\t Marc21.parseISBN(bookObject); \t
}
// Class Mark21
public static void parseISBN(Book bookObject) throws ...
{
\t \t ...
\t \t
\t \t SAXParserFactory saxFactory = SAXParserFactory.newInstance();
saxFactory.setNamespaceAware(true);
SAXParser saxParser = saxFactory.newSAXParser();
XMLReader xmlReader = saxParser.getXMLReader();
xmlReader.setContentHandler(new Marc21Handler());
xmlReader.parse(sruAbfrage);
}
public class Marc21Handler extends DefaultHandler
{
\t ...
\t Book parserBookObject = new Book();
\t
\t public void startDocument ...
\t public void startElement ...
\t public void characters...
\t ...
\t if ("245".equals(this.bufferNummer)) {
if ("a".equals(this.bufferCode)) {
parserBookObjekt.setTitel(zeichenkette);
\t \t \t \t ..
\t \t \t \t }
\t \t \t \t ...
\t public void endElement...
}
私の問題私はハンドラ内 "parseBookObject" にXML件のデータを収集すること、です。私はこのメソッドのメソッド "parseISBN(fileObject)"にオブジェクトを返すことができるか分かりません。収集した情報のデータを使用します。
私はオブジェクト "bookObject"をこれらのオブジェクトへのコレクションXML DatasのHandlerに渡して返します。 xmlReaderまたはParserからHandlerに他のオブジェクトを渡すことはできませんか? その後、 "parserBookObject"という名前のHandlerで新しいオブジェクトを作成し、Datasを収集した後、メソッド "parseISBN(fileObject)"に戻したいと思います。
どのようにすればいいのですか?ローカル変数で
おかげ
ありがとうございました。それは今仕事になるでしょう。 – mj44