读取文件夹中的多个xml文件

时间:2014-12-13 15:15:40

标签: java xml

我发布的代码全部正在编写,但我需要建议如何读取xml文件,以便输出和/或删除文件。我读到了关于SAX,documentbuilder .parse方法和其他一些方法,但我很困惑我会使用什么。我不需要你为此编写代码,而是指向正确的方向。

文件是单独在一个文件夹中创建的,所以如果可能的话我需要一次性读取它们(文件的名称是下面列出的变量 Id

这就是我创建XML文件的方式。

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    {
    try {
        DocumentBuilder doc = factory.newDocumentBuilder();
        Document doc1=doc.newDocument();

        Element IdNumber = (Element) doc1.createElement(Id);
        Element IDes=(Element) doc1.createElement("InitialDestination");
        Element FinDes=(Element) doc1.createElement("FinalDestination");
        Element HourTime=(Element) doc1.createElement("Hours");
        Element Minutetime=(Element) doc1.createElement("Minutes");
        Element Price=(Element) doc1.createElement("TicketPrice");
        Element Tran=(Element) doc1.createElement("TransportAgency");

        doc1.appendChild(IdNumber);

        IDes.appendChild(doc1.createTextNode(InDes));
        FinDes.appendChild(doc1.createTextNode(FDes));
        HourTime.appendChild(doc1.createTextNode(Htime));
        Minutetime.appendChild(doc1.createTextNode(Mtime));
        Price.appendChild(doc1.createTextNode(TicketPrice));
        Tran.appendChild(doc1.createTextNode(TransportAgency));

        IdNumber.appendChild(IDes);
        IdNumber.appendChild(FinDes);
        IdNumber.appendChild(HourTime);
        IdNumber.appendChild(Minutetime);
        IdNumber.appendChild(Price);
        IdNumber.appendChild(Tran);

        Source S=new DOMSource(doc1);
        File file1=new File("C:\\Users\\Lozanovski\\Desktop\\TransportMe");
        file1.mkdirs();
        File file=new File("C:\\Users\\Lozanovski\\Desktop\\TransportMe\\"+Id+".xml");
        StreamResult R=new StreamResult(file);
        Transformer transformer = TransformerFactory.newInstance().newTransformer();
        transformer.transform(S, R);
    }
    catch(ParserConfigurationException except)
    {
        System.out.println(except);
    }
    catch(TransformerException  except1)
    {
        System.out.println(except1);
    }
    catch(DOMException except2)
    {
        System.out.println(except2);
    }
    catch(NullPointerException except3){
        System.out.println(except3);
    }
}

我不知道如何正确发布xml代码(我会接受编辑)

    <?xml version="1.0" encoding="UTF-8"?>

    -<InsertIdentificationNumber>

    <InitialDestination>Insert Initial Destination</InitialDestination>

    <FinalDestination>Insert Final Destination</FinalDestination>

    <Hours>Insert Hours</Hours>

    <Minutes>Insert Minutes</Minutes>

    <TicketPrice>Insert Ticket Price</TicketPrice>

    <TransportAgency>Insert Transport Agency</TransportAgency>

    </InsertIdentificationNumber>

1 个答案:

答案 0 :(得分:1)

循环浏览文件夹,对于找到的每个文件,创建一个Document并使用它来显示/输出内容。您也可以根据需要删除该文件:

File folder = new File("C:\\Users\\Lozanovski\\Desktop\\TransportMe");
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

if (folder.isDirectory()) {
    for (File file : folder.listFiles()) {
        Document doc = docBuilder.parse(file); // create an XML document
        file.delete(); // delete the file
    }
}