0

http://docs.oracle.com/javaee/5/api/javax/xml/stream/XMLStreamReader.html

XMLStreamReader を拡張したいのですが、それはインターフェースです。

私は次のようなことをしたい:

public class GraphDataStreamReader extends XMLStreamReader{

  public GraphDataStreamReader(){
    super();
  }

  public void nextStartElement() throws XMLStreamException {
    do {
      super.next();   
    } while (!super.isStartElement());
  }
}

他のクラス:

XMLInputFactory factory = XMLInputFactory.newInstance();
GraphDataStreamReader streamReader = (GraphDataStreamReader) factory.createXMLStreamReader(new FileReader(xmlFile)); //returns XMLStreamReader
streamReader.next(); //method from XMLStreamReader
streamReader.nextStartElement(); //method from GraphDataStreamReader

これは可能ですか?はいの場合、どのように?

4

3 に答える 3

0

私は今それを解決しました(多くの試行の後)。

独自のメソッドを持つ拡張された XMLStreamReader:

public class GraphDataStreamReader extends XMLStreamReaderImpl {
  public GraphDataStreamReader(InputStream arg0, PropertyManager arg1) throws XMLStreamException {
    super(arg0, arg1);
  }
  public boolean nextStartElement() throws XMLStreamException {
    ....
  }
}

GraphDataStreamReader を使用するクラス:

public class GraphDataParser {
  private GraphDataStreamReader graphSR;

  private GraphDataParser(String xmlFile) throws FileNotFoundException, XMLStreamException {
    FileInputStream inStream = new FileInputStream(new File(xmlFile));
    graphSR = new GraphDataStreamReader(inStream, new PropertyManager(1));
  }
}

すべてのアイデアに感謝します。ほとんどの功績は McDowell に帰属します。彼の投稿のために、私は努力を続けています。この質問が他の誰かにとってまだ役に立つことを願っています。

于 2014-06-17T23:07:35.460 に答える