2015-09-10 2 views
0

Я пытаюсь написать Java-код для анализа списка xml-файлов. Как передать этот список xml-файлов в метод parse.Разбор списка xml-файлов в java

код для разбора файла:

public void parseXml(String xmlPath, String tagName) { 
     DocumentBuilderFactory dbFact = DocumentBuilderFactory.newInstance(); 

     try { 
      DocumentBuilder docBuild = dbFact.newDocumentBuilder(); 
      Document dom = docBuild.parse(xmlPath); 
      NodeList nl = dom.getElementsByTagName(tagName); 
      System.out.println("Total tags: " + nl.getLength()); 
     } catch (ParserConfigurationException pe) { 
      System.out.println(pe); 
     }catch (SAXException se){ 
      System.out.println(se); 
     }catch (IOException ie){ 
      System.out.println(ie); 
     } 

    } 

код для извлечения всех файлов XML из каталога:

public static List<File> getFiles(String path){ 
     File folder = new File(path); 
     List<File> resultFiles = new ArrayList<File>(); 

     File[] listOfFiles = folder.listFiles(); 

     for(File file: listOfFiles){ 
      if(file.isFile() && file.getAbsolutePath().endsWith(".xml")){ 
       resultFiles.add(file); 
      }else if(file.isDirectory()){ 
       resultFiles.addAll(getFiles(file.getAbsolutePath())); 
      } 
     } 

     return resultFiles; 

    } 

ответ

0

Используйте фильтры

public static List<File> getFiles(String path) { 
    File folder = new File(path); 
    File[] listOfFiles = folder.listFiles(new FilenameFilter() { 
     public boolean accept(File dir, String name) { 
      return name.toLowerCase().endsWith(".xml") && !name.toLowerCase().contains("settings_"); 
     } 
    }); 

    return Arrays.asList(listOfFiles); 
} 

и модифицировать свой метод, чтобы принять список файлов

public void parseXml(List<File> xmlFiles, String tagName) { 
    for (File xmlFile : xmlFiles) { 
     DocumentBuilderFactory dbFact = DocumentBuilderFactory 
       .newInstance(); 
     try { 
      DocumentBuilder docBuild = dbFact.newDocumentBuilder(); 
      Document dom = docBuild.parse(xmlFile); 
      NodeList nl = dom.getElementsByTagName(tagName); 
      System.out.println("Total tags: " + nl.getLength()); 
     } catch (ParserConfigurationException pe) { 
      System.out.println(pe); 
     } catch (SAXException se) { 
      System.out.println(se); 
     } catch (IOException ie) { 
      System.out.println(ie); 
     } 
    } 
} 
+0

Как передать этот список файлов в метод parse() –

+0

'parseXml (getFiles (" xmlPath ")," myXmlTag ");' –

+0

Какова цель вашего кода? Чтобы подсчитать появление тега в наборе xml-файлов? –

Смежные вопросы