处理目录中的许多XML文件(java)

处理目录中的许多XML文件(java),java,Java,我管理了一个代码来处理文件。 现在我想使用相同的代码来处理位于目录中的所有XML文件。 有人能告诉我如何声明路径以及如何查找循环吗。 提前谢谢 import org.xml.sax.SAXException; import org.w3c.dom.*; import javax.xml.parsers.*; import java.io.IOException; public class XmlReadWrite3 { public static void main(String[]

我管理了一个代码来处理文件。
现在我想使用相同的代码来处理位于目录中的所有XML文件。 有人能告诉我如何声明路径以及如何查找循环吗。 提前谢谢

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

public class XmlReadWrite3 {
    public static void main(String[] args) {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        try {
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse("C:/Users/Desktop/1381.xml");

            Element langs = doc.getDocumentElement();



            Element filename= getElement(langs, "Filename");
            Element beschreibung = getElement(langs, "Beschreibung");
            Element name = getElement(langs, "Name");
            Element ide = getElement(langs, "IDe");

            System.out.println("Filename:      " + filename.getTextContent() + "\n" + "Beschreibung:  "
                    + beschreibung.getTextContent() + "\n" + "Ersteller:     " + name.getTextContent() + "\n"
                    + "Pnummer: " + ide.getTextContent() + "\n\n");
        }catch (ParserConfigurationException pce) {
            pce.printStackTrace();
        } catch (SAXException se) {
            se.printStackTrace();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
   }

   private static  Element getElement(Element langs, String tag){
       return (Element) langs.getElementsByTagName(tag).item(0);
   }
}

您好,您可以使用路径和文件类在目录中循环:

import org.xml.sax.SAXException;
import org.w3c.dom.*;

import javax.xml.parsers.*;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

class XmlReadWrite3 {
public static void main(String[] args) {

    // here you enter the path to your directory.
    // for example: Path workDir = Paths.get("c:\\workspace\\xml-files")

    Path workDir = Paths.get("path/to/dir"); // enter the path to your xml-dir
    // the if checks whether the directory truly exists
    if (!Files.notExists(workDir)) {
        // this part stores all files withn the directory in a list
        try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(workDir)) {
            for (Path path : directoryStream) {


                DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                try {
                    DocumentBuilder db = dbf.newDocumentBuilder();
                    Document doc = db.parse(path.toString());

                    Element langs = doc.getDocumentElement();


                    Element filename = getElement(langs, "Filename");
                    Element beschreibung = getElement(langs, "Beschreibung");
                    Element name = getElement(langs, "Name");
                    Element ide = getElement(langs, "IDe");

                    System.out.println("Filename:      " + filename.getTextContent() + "\n" + "Beschreibung:  "
                            + beschreibung.getTextContent() + "\n" + "Ersteller:     " + name.getTextContent() + "\n"
                                 + "Pnummer: " + ide.getTextContent() + "\n\n");
                    } catch (ParserConfigurationException pce) {
                        pce.printStackTrace();
                    } catch (SAXException se) {
                        se.printStackTrace();
                        } catch (IOException ioe) {
                            ioe.printStackTrace();
                         }
                 }
            } catch (Exception e) {
                System.out.println(e.getMessage())
                          }
        }
    }

    private static Element getElement(Element langs, String tag) {
        return (Element) langs.getElementsByTagName(tag).item(0);
    }
}
import org.xml.sax.SAXException;
导入org.w3c.dom.*;
导入javax.xml.parsers.*;
导入java.io.IOException;
导入java.nio.file.DirectoryStream;
导入java.nio.file.Files;
导入java.nio.file.Path;
导入java.nio.file.path;
类XmlReadWrite3{
公共静态void main(字符串[]args){
//在这里输入目录的路径。
//例如:Path workDir=Path.get(“c:\\workspace\\xml文件”)
Path workDir=Path.get(“Path/to/dir”);//输入xml目录的路径
//if检查目录是否确实存在
如果(!Files.notExists(workDir)){
//此部件将目录中的所有文件存储在列表中
try(DirectoryStream DirectoryStream=Files.newDirectoryStream(workDir)){
for(路径:directoryStream){
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
试一试{
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse(path.toString());
Element langs=doc.getDocumentElement();
Element filename=getElement(langs,“filename”);
元素beschreibung=getElement(langs,“beschreibung”);
元素名称=getElement(langs,“名称”);
元素ide=getElement(langs,“ide”);
System.out.println(“文件名:“+Filename.getTextContent()+”\n“+”Beschreibung:”
+beschreibung.getTextContent()+“\n”+“Ersteller:”+name.getTextContent()+“\n”
+Pnummer:+ide.getTextContent()+“\n\n”);
}捕获(ParserConfiguration异常pce){
pce.printStackTrace();
}捕获(SAXSE异常){
se.printStackTrace();
}捕获(ioe异常ioe){
ioe.printStackTrace();
}
}
}捕获(例外e){
System.out.println(e.getMessage())
}
}
}
私有静态元素getElement(元素langs、字符串标记){
return(Element)langs.getElementsByTagName(tag).item(0);
}
}

文件可能重复请参见JavaDoc…谢谢Stefan,你是钝角还是锐角?