Как можно загрузить из 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();
    }
}

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


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

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

7   голосов , оценка 4 из 5
Похожие ответы