Читаю постоянно загружен XML-файл из определенной папки и извлечения данных на базе
На месте в Исландии у них есть прибор, который делает химический анализ материала, который они вынули из печи.
Этот прибор использует программное обеспечение для составления отчета об анализе (см. прилагаемый документ о программном обеспечении).
Эта информация отчета должна быть отправлена в базу данных, откуда они могут извлечь эту информацию.
На данный момент я создал веб-страницу, на которую они могут загрузить экспортированный xml-файл отчета, а затем эта веб-страница извлекает данные и помещает их в базу данных нашего сервера на сайте.
Теперь требуется автоматизировать этот процесс, поэтому вместо того, чтобы вручную загружать xml-файл на веб-страницу, необходимо написать приложение для мониторинга папки, и если какие-либо новые XML-файлы будут сохранены в папке, данные должны быть извлечены из файла/файлов и сохранены в базе данных.
Что я уже пробовал:
import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class Dom { public static void main (String[] args) { String badnumber = "MPP"; int badnumberconverted; try { badnumberconverted = Integer.parseInt(badnumber); }catch (NumberFormatException nfEx){ // System.out.println("banumber*1000000"); } DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse("repeat.xml"); NodeList sampleIDs = doc.getElementsByTagName("Elements"); for(int i=0;i<sampleIDs.getLength();i++){ Node p = sampleIDs.item(i); if(p.getNodeType() == Node.ELEMENT_NODE){ Element Elements = (Element) p; String id = Elements.getAttribute("id"); NodeList nameList = Elements.getChildNodes(); for(int j=0;j<nameList.getLength();j++){ Node n = nameList.item(j); if(n.getNodeType() == Node.ELEMENT_NODE){ Element name = (Element) n; // System.out.println( convert(name.getTextContent())); System.out.println("Elements" + id + ":" + name.getTagName()+ "=" + name.getTextContent()); } } } } } catch (ParserConfigurationException e){ e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } } public static String convert(String val) { double d = Double.parseDouble(val); d = d/1000000; return Double.toString(d); } }
Garth J Lancaster
Кстати-Ваш вопрос был "(см. прилагаемый документ по программному обеспечению) " - я не смог найти ссылку на него, извините ...
Хитрость заключается в том, чтобы перечислить все ваши требования, все, что может пойти правильно, все, что может пойти не так, какая отказоустойчивость/надежность вам нужна и т. д.