2014-12-13 1 views
-1

Код, который я написал, все работает и предназначен для записи, но мне нужен совет, как я могу прочитать XML-файл, чтобы я мог его вывести и/или удалить. Я читал о SAX, методе documentbuilder .parse и некоторых других, но я смущен тем, что я использую. Мне не нужно, чтобы вы писали код для этого, но указали мне в правильном направлении.Чтение файла muiltiple xml в папке

Файлы создаются в папке отдельно, поэтому мне нужно, чтобы прочитать их все сразу, если это возможно (имя файла является переменной перечислены ниже как 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> 
+0

Вы хотите прочитать XML-файл в DOM? – Joachim

+0

Да, я хочу прочитать в DOM, поэтому я могу использовать имя файла для его удаления или вывести весь контент внутри файла в новом фрейме –

+0

Чем вы уже ответили, см. Сообщение @Khidsids – Joachim

ответ

1

Loop через папку, и для каждого найденного файла, создать 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 
    } 
} 
+0

Я бы попробовал это –

+0

Я получаю сообщение об ошибке, которое не может быть разрешено в синтаксической линии, даже я был изменен на docBuilder.parse (файл), потому что у вас есть орфографическая ошибка, и она не работает снова. –

+0

Сначала вам нужно создать 'DocumentBuilder'. См. Обновленный код. – Khalid