2010-03-28 1 views
0

Я пытаюсь разобрать xml-файл, используя парсер Sax. Файл имеет переменное число тех же элементов. Я хочу подсчитать количество элементов, присутствующих в элементе. И я хочу этот счет перед синтаксическим разбором, чтобы я мог объявить массив соответствующего размера.Sax parsing from web service

Одним из способов является их подсчет в отдельном классе с другим парсером (неуклюжий), а другим способом является динамический массив (массив массивов). Есть ли другой лучший способ сделать это?

Кроме того, возможно ли сделать ArrayList моего класса ..? потому что я хочу массив типа myClass.

+0

'ArrayList myClasses = новый ArrayList ();' –

+0

да это один должен работать для меня .. – donald

ответ

2

У Sax в основном нет истории, поэтому вы не можете рассчитывать, а затем возвращаться и снова разбираться. Почему бы не собрать в списке и в конце преобразовать список в массив?

Примечание: для комплексной работы с выходом веб-службы небольшая программа XSLT может творить чудеса.

0

На мой взгляд, один хороший вариант заключается в создании списка:

List elements = new ArrayList(); 

Тогда внутри класса SAX, который обрабатывает файл XML, в методе EndElement (...) вам просто нужно работать, когда тег завершается, а затем добавляется элемент в ранее созданный Список. Тогда не нужно беспокоиться о длине.

elements.add(...);