2016-10-13 2 views
1

У меня есть XML-файл:Как сохранить данные при анализе XML?

<?xml version="1.0" encoding="utf-8" ?> 
<list> 
<file name="a" size="559393"/> 
<file name="b" size="1766945"/> 
... 
</list> 

С SAX-парсера мне нужно, чтобы получить значения атрибутов (в моем случае имя и размер значения всех тегов файл) и запись в коллекции для дальнейшая работа над моей программой.

Как я должен это понимать? Для каждого тега файла создать объект с полями имя и размера, и добавить все это к ArrayListObject?

+0

Не звучит так сложно. Просто определите объект 'MyFile' с именами участников 'и' size ',' ArrayList ', чтобы набивать все, что есть, и объединить это с разбором XML. – 0xDEADC0DE

+0

Да. Надеюсь, используя синтаксический анализатор SAX, вы получаете значения атрибутов имени и размера. Вы можете создать класс bean/pojo, скажем, здесь 'FileInfo' с' name' и 'size'. Для синтаксического анализа и повторения значений XML вы можете установить это значение в 'FileInfo' и добавить его в объект ArrayList. Вы можете использовать 'Map', если ваше имя файла уникально, чтобы избежать итерации ArrayList для получения значений. – Vish

+0

@ Више вы можете объяснить, пожалуйста: «вы можете использовать карту, если ваше имя файла уникально, чтобы избежать итерации ArrayList для получения значений» – Gleb

ответ

0

Да, у вас должен быть объект с атрибутами имени и размера, а при использовании метода начального элемента выполните что-то подобное.

@Override 
public void startElement(String uri, String localName, String qName, Attributes attributes) 
     throws SAXException { 

    if (qName.equalsIgnoreCase("file")) { 
     String name = attributes.getValue("name"); 
     String size = attributes.getValue("size"); 
     file file = new file (name,size); 
     list.add(file); 
     } 
     } 

Смежные вопросы