Нужно произвести импорт записей из файла xml, все импортируется хорошо, но только первая запись, а нужно что бы все. вот код импорта:
Statement statement = null;
Schema schema = null;
try {
statement = connection.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
Scanner scanner = new Scanner(System.in);
System.out.println("Скопируйте файл в директорию, где находится программа" +
"\n Введите имя файла xml соответствующего для импорта в таблицу Автомобили");
String string = scanner.nextLine();
String FILENAME = string + ".xml";
try {
final File xmlFile = new File(System.getProperty("user.dir")
+ File.separator + FILENAME);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(xmlFile);
doc.getDocumentElement().normalize();
try {
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
schema = factory.newSchema(new File("xsd\\Auto.xsd"));
Validator validator = schema.newValidator();
validator.validate(new DOMSource(doc));
System.out.println("Файл xml соответствует схемы данной таблицы");
} catch (Exception e) {
System.out.println("Файл xml не соответствует xsd схеме данной таблицы");
return;
// e.printStackTrace();
}
NodeList nodeList = doc.getElementsByTagName("Auto");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (Node.ELEMENT_NODE == node.getNodeType()) {
Element element = (Element) node;
String Model = element.getElementsByTagName("Model").item(0).getTextContent();
String Data_vipuska = element.getElementsByTagName("Data_vipuska").item(0).getTextContent();
String Color = element.getElementsByTagName("Color").item(0).getTextContent();
String Probeg = element.getElementsByTagName("Probeg").item(0).getTextContent();
String Price = element.getElementsByTagName("Price").item(0).getTextContent();
statement.execute("INSERT INTO 'Auto'('Model','Data_vipuska','Color','Probeg','Price')" +
" VALUES ('" + Model + "','" + Data_vipuska + "','" +
Color + "','" + Probeg + "','" + Price + "'); ");
System.out.println("Данные импортированы в таблицу");
}
Вот пример xml:
<Auto>
<auto>
<id_auto>1</id_auto>
<Model>lalaz</Model>
<Data_vipuska>2017</Data_vipuska>
<Color>red</Color>
<Probeg>100</Probeg>
<Price>200</Price>
</auto>
<auto>
<id_auto>1</id_auto>
<Model>maz</Model>
<Data_vipuska>2001</Data_vipuska>
<Color>red</Color>
<Probeg>100000</Probeg>
<Price>1</Price>
</auto>
</Auto>
Так как xml учитывает регистр, то эта строчка
NodeList nodeList = doc.getElementsByTagName("Auto");
возвращает список из 1 элемента.
Вам надо использовать название узла в правильном регистре
NodeList nodeList = doc.getElementsByTagName("auto");
Вот этот код
NodeList nodeList = doc.getElementsByTagName("auto");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (Node.ELEMENT_NODE == node.getNodeType()) {
Element element = (Element) node;
String Model = element.getElementsByTagName("Model").item(0).getTextContent();
String Data_vipuska = element.getElementsByTagName("Data_vipuska").item(0).getTextContent();
String Color = element.getElementsByTagName("Color").item(0).getTextContent();
String Probeg = element.getElementsByTagName("Probeg").item(0).getTextContent();
String Price = element.getElementsByTagName("Price").item(0).getTextContent();
System.out.println("INSERT INTO 'Auto'('Model','Data_vipuska','Color','Probeg','Price')" +
" VALUES ('" + Model + "','" + Data_vipuska + "','" +
Color + "','" + Probeg + "','" + Price + "'); ");
}
}
Выдает вот такой результат
INSERT INTO 'Auto'('Model','Data_vipuska','Color','Probeg','Price') VALUES ('lalaz','2017','red','100','200');
INSERT INTO 'Auto'('Model','Data_vipuska','Color','Probeg','Price') VALUES ('maz','2001','red','100000','1');
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Предполагаю что дело в кешеПри сохранении изображения с создаю папку Folder и сохраняю туда картинку
В интерфейсе среды NetBeans есть три элемента: кнопка JButton, поле jTextField и JListСкажите пожалуйста как правильно их вместе связать
Хочеться сделать подсветку края бокового меню, как в EBookDroidПожалуйста, подскажите, каким спосом реализован данный эффект?
Мне нужно отобразить определённые блоки (отрывки) кода в Android приложении