Как можно загрузить из xml файла только нужные а не все? - Java
Формулировка задачи:
Например у меня есть вот такие данные! Могу ли нажать определенную кнопку и загрузить только по категории Транспорта? Спасибо заранее!
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <CП> <Ко> <Список>Авто1</Список> <Коментарии>123</Коментарии> <Категория>Транспорт</Категория> </Ко> <Ко> <Список>Авто2</Список> <Коментарии>569</Коментарии> <Категория>Транспорт</Категория> </Ко> <Ко> <Список>Спорт</Список> <Коментарии>789</Коментарии> <Категория>Развлечение</Категория> </Ко> </CП>
Решение задачи: «Как можно загрузить из xml файла только нужные а не все?»
textual
Листинг программы
package Table; import java.awt.Font; import java.util.ArrayList; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import java.io.FileInputStream; import java.io.FileNotFoundException; import javax.xml.stream.FactoryConfigurationError; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; public class StAX { public JFrame window = new JFrame("Good day"); public ArrayList<String> arrLogo = new ArrayList<String>(); public StAX() { window.setSize(1024, 768); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setLayout(null); window.setResizable(false); window.setLocationRelativeTo(null); StAXparcer(); window.setVisible(true); } private void StAXparcer() { String fileName = "data/data.xml"; try { XMLStreamReader xmlr = XMLInputFactory.newInstance().createXMLStreamReader(fileName, new FileInputStream(fileName)); while (xmlr.hasNext()) { xmlr.next(); if (xmlr.isStartElement() && xmlr.getLocalName().equals("position"))//если натыкаемся на данный тег то срабатывает условие показывая что внутри { xmlr.next(); arrLogo.add(xmlr.getText()); System.out.println(xmlr.getText()); } if (xmlr.isStartElement() && xmlr.getLocalName().equals("name")) { xmlr.next(); arrLogo.add(xmlr.getText()); System.out.println(xmlr.getText()); } if (!xmlr.hasNext()) { start_consructor(); break; } } } catch (FileNotFoundException e) { //... } catch (XMLStreamException e) { //... } catch (FactoryConfigurationError e) { //... } } private void start_consructor() { JLabel text = new JLabel("<html><div align="right"><b>УТВЕРЖДАЮ</b></div><p align="right">"+arrLogo.get(0)+" "ООО Хентай клуб любителей горничных"</p><p align="right"><br>"+arrLogo.get(1)+"</p></html>"); text.setBounds(200, 0, 500, 100); text.setFont(new Font("Arial",0,16)); text.setHorizontalAlignment(SwingConstants.RIGHT); JPanel container = new JPanel(); container.setLayout(null); container.setBounds((1024-700)/2, 10, 700, 100); container.add(text); window.add(container); } public static void main(String[] args) { new StAX(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д