?? xmlfiledirectorygenerator.java
字號:
package directory.generator;import java.io.File;import javax.swing.tree.TreeModel;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.dom.Node;public class XMLFileDirectoryGenerator extends DirectoryGenerator { //public static void main(String[] args) { // new XMLFileDirectoryGenerator().process(new File("/home/equality/workspace/XMLParser/DirectoryStructure.xml")); //} @Override public TreeModel process(File file) { // TODO Auto-generated method stub System.out.println("Parsing and .XML file"); try { // parse the xml file into a Document DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = dbFactory.newDocumentBuilder(); Document document = docBuilder.parse(file.getAbsolutePath()); // create folder structure File topLevelDir = createDirectoryStructure(document); // create and return tree model from previously created folder structure return new DirectoryTreeModel(topLevelDir); } catch (Exception e) {// Catch exception if any e.printStackTrace(); return null; } } private File createDirectoryStructure(Document document) { //System.out.println(document.getFirstChild().getAttributes()); String rootDirectoryValue = document.getFirstChild().getAttributes().getNamedItem("path").getNodeValue(); File file = new File (rootDirectoryValue); if (!file.exists()) { file.mkdir(); } for (int i = 0; i < document.getFirstChild().getChildNodes().getLength(); i++) { Node childNode = document.getFirstChild().getChildNodes().item(i); if (childNode.getNodeName().equals("directory")) { createRelativeDirectory(childNode, rootDirectoryValue); } } // return the root directory return file; } private void createRelativeDirectory (Node currentNode, String path) { System.out.println(path); String newDirectoryPath = path + "/" + currentNode.getAttributes().getNamedItem("path").getNodeValue(); File file = new File (newDirectoryPath); if (!file.exists()) { file.mkdir(); } for (int i = 0; i < currentNode.getChildNodes().getLength(); i++) { Node childNode = currentNode.getChildNodes().item(i); if (childNode.getNodeName().equals("directory")) { createRelativeDirectory(childNode, newDirectoryPath); } } }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -