-3

フォルダーからすべての入力 xml ファイルを読み取り、コンマ区切りの 1 つの出力テキスト ファイルを書き込む必要があります。次のコード プログラムに 1 つのファイルを読み取らせます。誰かがそれを変更して、c:/java/ フォルダーからすべてのファイルを読み取るのを手伝ってくれませんか。ありがとう

   import java.io.IOException;
   import org.w3c.dom.*;
   import org.xml.sax.SAXException;
   import javax.xml.parsers.*;
   import javax.xml.xpath.*;

    public class XPathExample {

        public static void main(String[] args) throws ParserConfigurationException,
                SAXException, IOException, XPathExpressionException {

            DocumentBuilderFactory domFactory = DocumentBuilderFactory
                    .newInstance();
            domFactory.setNamespaceAware(true); 
            DocumentBuilder builder = domFactory.newDocumentBuilder();
            Document doc = builder.parse("c:/java/test.xml");

            XPathFactory factory = XPathFactory.newInstance();
            XPath xpath = factory.newXPath();
            XPathExpression expr = xpath.compile("//FORM[@name='F00001']        /*/text()");

            Object result = expr.evaluate(doc, XPathConstants.NODESET);
            NodeList nodes = (NodeList) result;
            for (int i = 0; i < nodes.getLength(); i++) {
            System.out.println(nodes.item(i).getNodeValue());
            }

            }

             }
4

2 に答える 2

0

ディレクトリ内のすべてのファイルを取得するにはC:\java、次のコードを使用できます。

for (File file : new File("C:\\java").listFiles()) 
{
   Document doc = builder.parse(file.getAbsolutePath());
   ...
}

このループの残りのコードを追加する場所をいじることができます。また、解析しようとしているものが実際に XML であることを確認する基本的なチェックも追加する必要があります。

于 2013-07-29T16:13:53.413 に答える
0

これを使用して、ディレクトリ内のすべてのファイルを繰り返し処理します。

フォルダー内のすべてのファイルを読み取る

出力 (ディレクトリ内のファイル) ここで入力として使用

Document doc = builder.parse("<dir file>");

ファイルが xml でない場合は、null を返すか、例外が発生します (現在はわかりません)。いずれにせよ、これを解決する必要があります。

于 2013-07-29T16:10:00.597 に答える