可以用java读取文件夹中xml文件的完整内容吗?

可以用java读取文件夹中xml文件的完整内容吗?,java,xml,Java,Xml,可以用java读取文件夹中xml文件的完整内容吗 我的代码是: DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setValidating(false); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new FileInputStream(new File("C:\\Users\\Admin

可以用java读取文件夹中xml文件的完整内容吗

我的代码是:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();      
dbf.setValidating(false);
DocumentBuilder db = dbf.newDocumentBuilder();

Document doc = db.parse(new FileInputStream(new 
File("C:\\Users\\Administrator\\eclipse-workspace\\XMLExamples2\\")));

Element element = (Element) doc.getElementsByTagName("composite").item(0);

// Adds a new attribute. If an attribute with that name is already present 
// in the element, its value is changed to be that of the value parameter
element.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-
instance");
element.setAttribute("xsi:noNamespaceSchemaLocation", "v1_6.xsd");

当它将名称放在…\XMLExample2\

之后时,我只能读取和操作单个文件。不,不能将多个XML文件的内容作为唯一的文档处理

但您可以列出XML文件,然后处理列表中的每个
文件

String xmlDir = "C:\\Users\\Administrator\\eclipse-workspace\\XMLExamples2";
File[] files = new File(xmlDir).listFiles(new FilenameFilter() {

        @Override
        public boolean accept(File folder, String name) {
            return name.toLowerCase().endsWith(".xml");
        }
    });

for(File file : files){

    Document doc = db.parse(file);

    Element element = (Element) doc.getElementsByTagName("composite").item(0);

    // etc...

}

每个文件都是一个单独的文档。因此,如果您不想将它们作为单个文档来阅读,那么您所需要做的就是使用
File
class'
listFiles()
方法获取该文件夹中的文件列表。然后,您可以在文件夹中的每个文件上循环并相应地处理它们


如果您确实希望将其视为单个XML文档:首先需要将文件合并在一起,然后对其进行处理。有很多方法可以做到。您可能需要考虑一些想法。

好的,是的-因此循环文件夹中的所有文件,并一次加载一个。使用并解析每个文件您必须以循环方式从目录中读取文件,如下面的示例所示。我得到了这个错误代码。线程“main”java.lang.NullPointerException在AddAttribute_test.main(AddAttribute_test.java:37)第37行中的异常是第一个打印文件名(
file.getName()
)并检查其内容是否如预期的SetAttributery。您的意思是在解析部分?Document doc=db.parse();当然,
setAttribute
行不应该给您一个空指针,除非
元素
为空。是的,我的意思是在循环开始时打印文件名,以知道当前正在处理哪个文件。但是为什么呢?我在上面的行中定义了元素:元素元素=(元素)doc.getElementsByTagName(“复合”)。项(0);