Как можно загрузить из xml файла только нужные а не все? - Java

Узнай цену своей работы

Формулировка задачи:

Например у меня есть вот такие данные! Могу ли нажать определенную кнопку и загрузить только по категории Транспорта? Спасибо заранее!
Листинг программы
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <CП>
  3. <Ко>
  4. <Список>Авто1</Список>
  5. <Коментарии>123</Коментарии>
  6. <Категория>Транспорт</Категория>
  7. </Ко>
  8. <Ко>
  9. <Список>Авто2</Список>
  10. <Коментарии>569</Коментарии>
  11. <Категория>Транспорт</Категория>
  12. </Ко>
  13. <Ко>
  14. <Список>Спорт</Список>
  15. <Коментарии>789</Коментарии>
  16. <Категория>Развлечение</Категория>
  17. </Ко>
  18. </CП>

Решение задачи: «Как можно загрузить из xml файла только нужные а не все?»

textual
Листинг программы
  1. package Table;
  2.  
  3. import java.awt.Font;
  4. import java.util.ArrayList;
  5. import javax.swing.JFrame;
  6. import javax.swing.JLabel;
  7. import javax.swing.JPanel;
  8. import javax.swing.SwingConstants;
  9. import java.io.FileInputStream;
  10. import java.io.FileNotFoundException;
  11. import javax.xml.stream.FactoryConfigurationError;
  12. import javax.xml.stream.XMLInputFactory;
  13. import javax.xml.stream.XMLStreamException;
  14. import javax.xml.stream.XMLStreamReader;
  15.  
  16.  
  17.  
  18. public class StAX
  19. {
  20.     public JFrame window = new JFrame("Good day");
  21.     public ArrayList<String> arrLogo = new ArrayList<String>();
  22.  
  23.    
  24.     public StAX()
  25.     {
  26.         window.setSize(1024, 768);
  27.         window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  28.         window.setLayout(null);
  29.         window.setResizable(false);
  30.         window.setLocationRelativeTo(null);
  31.        
  32.         StAXparcer();
  33.        
  34.         window.setVisible(true);
  35.     }
  36.    
  37.    
  38.     private void StAXparcer()
  39.     {
  40.         String fileName = "data/data.xml";
  41.        
  42.         try
  43.             {
  44.                XMLStreamReader xmlr = XMLInputFactory.newInstance().createXMLStreamReader(fileName, new FileInputStream(fileName));
  45.      
  46.                 while (xmlr.hasNext())
  47.                 {
  48.                     xmlr.next();
  49.                     if (xmlr.isStartElement() && xmlr.getLocalName().equals("position"))//если натыкаемся на данный тег то срабатывает условие показывая что внутри
  50.                     {
  51.                         xmlr.next();
  52.                         arrLogo.add(xmlr.getText());
  53.                         System.out.println(xmlr.getText());
  54.                     }
  55.                     if (xmlr.isStartElement() && xmlr.getLocalName().equals("name"))
  56.                     {
  57.                         xmlr.next();
  58.                         arrLogo.add(xmlr.getText());
  59.                         System.out.println(xmlr.getText());
  60.                     }
  61.                     if (!xmlr.hasNext())
  62.                     {
  63.                         start_consructor();
  64.                         break;
  65.                     }
  66.                 }
  67.             }
  68.             catch (FileNotFoundException e)
  69.             {
  70.                 //...
  71.             }
  72.             catch (XMLStreamException e)
  73.             {
  74.                 //...
  75.             }
  76.             catch (FactoryConfigurationError e)
  77.             {
  78.                 //...
  79.             }
  80.     }
  81.    
  82.    
  83.     private void start_consructor()
  84.     {
  85.         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>");
  86.         text.setBounds(200, 0, 500, 100);
  87.         text.setFont(new Font("Arial",0,16));
  88.         text.setHorizontalAlignment(SwingConstants.RIGHT);
  89.                        
  90.         JPanel container = new JPanel();
  91.         container.setLayout(null);
  92.         container.setBounds((1024-700)/2, 10, 700, 100);
  93.  
  94.         container.add(text);
  95.        
  96.         window.add(container);
  97.     }
  98.    
  99.  
  100.     public static void main(String[] args)
  101.     {
  102.         new StAX();
  103.     }
  104. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы