处理目录中的许多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,你是钝角还是锐角?