簡體   English   中英

如何獲取XML屬性並在給定目錄java中找到與屬性值匹配的文件

[英]How can I take XML attribute and find a file that matches the attribute value in a given directory java

我有一個Java程序,該程序讀取xml文件並獲取屬性並將該值打印到屏幕上。 現在,我想獲取每個屬性的值並搜索目錄以查找與該給定屬性匹配的所有文件。

我的代碼如下:

    public class ReadXML {

    public static void main(String[] args) {
        try {

        File fXmlFile = new File("////Orders//188219.outorder");
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(fXmlFile);

        doc.getDocumentElement().normalize();

        NodeList nList = doc.getElementsByTagName("seln_part");
        File dir = new File("////Images//Parts");

        for (int temp = 0; temp < nList.getLength(); temp++) {

            Node nNode = nList.item(temp);

            System.out.println("\nCurrent Element :" + nNode.getNodeName());

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

                Element eElement = (Element) nNode;
                FileFilter filter;
                System.out.println("Part Number : " + eElement.getAttribute("partNumber"));
            }
        }

        catch (Exception e){
            e.printStackTrace();
        }
    }
}

我現在想獲取eElement.getAttribute("partNumber")的值,並在images / parts目錄中搜索任何匹配項。

我該怎么做呢?

您可以通過以下兩個步驟來實現。

步驟1:將所有文件名及其絕對路徑存儲在哈希圖中,如下所示,

HashMap<String,String> fileNamevsPathMap = new HashMap<String,String>();
String rootDirectory = "Your Directory Path to Search";
boolean isRecursive = true;
Collection files = FileUtils.listFiles(rootDirectory, null, isRecursive);
for (Iterator iterator = files.iterator(); iterator.hasNext();) {
    File file = (File) iterator.next();
    fileNamevsPathMap .put(file.getName(),file.getAbsolutePath()
}

第2步:使用哈希圖搜索您的匹配項

if(fileNamevsPathMap.containsKey(eElement.getAttribute("partNumber"))){
     System.out.println("Part Number absolute path : "+fileNamevsPathMap.get(eElement.getAttribute("partNumber")));
}else{
     System.out.println("Part Number Not found on directory");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM