2017-08-31 19 views
-1

複数のxmlファイルを1つの親フォルダに格納する必要がありますが、その親フォルダ内に複数のサブフォルダがあり、 xmlファイルを作成します。私は、単一のXMLファイルを読み込むためのコードを書いており、XMLデータをCSVに出力しています。以下は私のコードです。 コードを確認し、関連する解決策を提示してください。複数のxmlファイルをJavaの別のフォルダから読み取る方法

public class XMLReader_Rar{ 

    public static void main (String[] args) throws Exception{ 

     File inputfile = new File("C:/Users/Vishvesh Savant/Desktop/Mirriad/Test/data4/subdir4/468736483.xml"); 


     File filePath = new File ("C:/Users/Vishvesh Savant/Desktop/Mirriad/Test/data4/subdir4/new.csv"); 

     DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder dbuilder = dbfactory.newDocumentBuilder(); 

     Document doc = dbuilder.parse(inputfile); 
     doc.getDocumentElement().normalize(); 

     NodeList list = doc.getElementsByTagName("product"); 
     FileWriter fileWriter = null; 
     fileWriter = new FileWriter(filePath); 

     try{ 
      for(int i=0; i<list.getLength();i++){ 

       Node node = list.item(i); 

       if(node.getNodeType()==Node.ELEMENT_NODE){ 

        Element element = (Element) node; 

        fileWriter.append(element.getAttribute("uid")); 
        fileWriter.append(","); 
        fileWriter.append(element.getElementsByTagName("title").item(0).getTextContent()); 
        fileWriter.append(","); 
        fileWriter.append(element.getElementsByTagName("actor").item(0).getTextContent()); 
        fileWriter.append(","); 
        fileWriter.append(element.getElementsByTagName("director").item(0).getTextContent()); 
        fileWriter.append(","); 
        fileWriter.append(element.getElementsByTagName("country").item(0).getTextContent()); 
        fileWriter.append(","); 
        fileWriter.append(element.getElementsByTagName("format").item(0).getTextContent()); 
        fileWriter.append(","); 
        fileWriter.append(element.getElementsByTagName("bitrate").item(0).getTextContent()); 
        fileWriter.append(","); 
        fileWriter.append(element.getElementsByTagName("fps").item(0).getTextContent()); 
        fileWriter.append(","); 
        fileWriter.append(element.getElementsByTagName("aspect").item(0).getTextContent()); 
        fileWriter.append(","); 
        fileWriter.append(element.getElementsByTagName("width").item(0).getTextContent()); 

        fileWriter.flush(); 
        fileWriter.close(); 
       } 
      } 
     } 
     catch (Exception e) { 
      System.out.println("Error in CsvFileWriter !!!"); 
      e.printStackTrace(); 
     } 
    } 
} 

答えて

0

Files.walkを使用してください。

String rootPath = "D:\\tmp"; 
Files.walk(Paths.get(rootPath)).filter(Files::isRegularFile).forEach(p -> { 
    File file = new File(p.toUri()); 
    //logic with file 
    System.out.println(file.getAbsolutePath()); 
}); 
+0

私が提供している上記のコードでそれを使用してください。どうすればよいですか?可能であれば –

+0

このコメントは、回答が投稿されてから9分後に返さ​​れます。さらなる助けを求める前に、答えを理解して適用するために9分以上の努力をする準備が本当に必要です。これは無料のコーディングサービスではありません。 –

+0

@michal Kay敬意を表して、この同じフォーラムで見つけたものと同じことを試してみましたが、うまくいかなかった質問を投稿しました。その前にも、投稿する前でもうまくいきませんでした。このフォーラムで質問を投稿するのは、自分のコードで十分な調査と試行錯誤を行ったときだけです。 –

関連する問題