Есть примерно такой файл xml (полный файл https://ru.files.fm/u/2uz4g74p)
<catESAD_cu:GoodsDescription>КОЛПАЧОК</catESAD_cu:GoodsDescription>
<catESAD_cu:GrossWeightQuantity>3649.192</catESAD_cu:GrossWeightQuantity>
<catESAD_cu:NetWeightQuantity>2472.192</catESAD_cu:NetWeightQuantity>
<catESAD_cu:NetWeightQuantity2>2472.192</catESAD_cu:NetWeightQuantity2>
<catESAD_cu:InvoicedCost>16316.47</catESAD_cu:InvoicedCost>
<catESAD_cu:CustomsCost>41048.05</catESAD_cu:CustomsCost>
<catESAD_cu:StatisticalCost>20107.81</catESAD_cu:StatisticalCost>
<catESAD_cu:GoodsTNVEDCode>7612100000</catESAD_cu:GoodsTNVEDCode>
По нажатию на кнопку выбирается этот файл и загружаются в текстовое поле все элементы страницы xml. А как сделать, чтобы загружались в разные текстовые поля разные элементы страницы xml по имени тега?
private void button_downloadActionPerformed(java.awt.event.ActionEvent evt) {
int returnVal = fileChooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
txt_result.read( new FileReader( file.getAbsolutePath() ), null );
} catch (IOException ex) {
txt_result.setText("проблема с доступом к файлу"+file.getAbsolutePath()+ex);
}
} else {
txt_result.setText("Доступ к файлу отменен");
}
}
как вариант можно использовать XMLStreamReader (ахтунг! код не универсален, а упрощен под структуру вашего файла):
XMLInputFactory factory = XMLInputFactory.newInstance();
String status = "";
try {
// enable to switch namespaces support off, i.e. if namespace is not declared in xml
// factory.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, false);
XMLStreamReader xmlStreamReader = factory.createXMLStreamReader(new FileReader(file));
while(xmlStreamReader.hasNext()) {
int eventType = xmlStreamReader.next();
if(eventType == XMLStreamConstants.START_ELEMENT) {
String name = xmlStreamReader.getLocalName();
switch(name) {
case "GoodsDescription":
txt_GoodsDescription.setText(xmlStreamReader.getElementText());
break;
case "GrossWeightQuantity":
txt_GrossWeightQuantity.setText(xmlStreamReader.getElementText());
break;
// TODO complete for all fields
case "root": // replace by your document root if needed
break;
default:
status += "Unknown element " + name + "\n";
}
}
}
} catch(IOException | XMLStreamException ex) {
status += "Error: " + ex;
}
txt_result.setText(status);
исправил:
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Делаю выделение определенного синтаксиса через ScheduledExecutorService, со следующим синтаксисом:
мучает вопрос, как внутри работает область видимости в различных языках? Ну или хотя бы интересно было бы узнать общую концепциюкак например...
Как через https://githubcom/rubenlagus/TelegramApi создать бота который будет обрабатывать сообщения юзеров ?
Знаю про конечные автоматы только какие-то основы, наподобие определения, сути и тд Подскажите, где подробно почитать про их реализацию? (желательно...