0

zipファイルに保存されているXMLファイルからの読み取りを探しています。私はこれを行う方法を理解するためにたくさんの問題を抱えています。私ができると思われる最善の方法は、入力ストリームを機能させることですが、それを読み取る方法を理解することはできません。だから私はそれが正しいファイルであることを知っています、私はデータを私が持っているXMLパーサーに渡したいとは思いません。しかし、私は入力ストリームが何であるか、またはそれを適切に操作する方法を本当に理解していません。以前にバッファで使用してからバッファに読み込むのを見たことがありますが、これに関する私の質問は、バッファが十分に大きいファイルである場合、バッファのサイズを適切に選択するにはどうすればよいかということです。

どんな助けでも素晴らしいでしょう、ありがとう!

ZipFile zf;
    try {
        zf = new ZipFile(directory);
        CharBuffer charBuffer = CharBuffer.allocate(BUFFER_SIZE);
      for (Enumeration<? extends ZipEntry> e = zf.entries();
            e.hasMoreElements();) {
        ZipEntry ze = e.nextElement();
        String name = ze.getName();
        if (name.endsWith(".xml")) {
          InputStream in = zf.getInputStream(ze);
          // read from 'in
        }
      }
    } catch (IOException e1) {
        System.out.println("Sorry we couldn't find the file");
        e1.printStackTrace();
    }
4

3 に答える 3

2

このように意味しますか?

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document document = docBuilder.parse(in);

または、InputStreamを受け取らない特定のXMLパーサーがすでにあるということですか?何が必要ですか?

于 2012-10-07T05:09:26.347 に答える
1

ストリームを使用SAXまたはStAX解析/読み取ることができます-JAXPを参照

Stream APIを使用すると、

 XMLStreamReader reader=XMLInputFactory.newFactory().createXMLStreamReader(in);
 while(reader.hasNext())
 {
  System.out.println(reader.next());
  System.out.println(reader.getLocalName());
 }

SAXを使用すると、

SAXParserFactory.newInstance().newSAXParser().parse(in, new YourHandler());
于 2012-10-07T05:09:07.090 に答える
0

単純なグーグル検索は、XMLを解析するために必要なコード作業を説明するたくさんの記事にあなたを導くことができます。では、検索してみませんか?

それらの1つ:http ://www.java-samples.com/showtutorial.php?tutorialid = 152

ファイルを解凍する方法は含まれていません。これで完了だとのことですが、オプションを探している場合は、回答を編集します。

ハッピーJavaコーディング。:)

于 2012-10-07T04:49:28.013 に答える