Я хочу сделать представление списка из ниже XML-файла:Многоуровневая XML с помощью SAX Parser
<Menu>
<Project name ="Desktop Application">
<name>Desktop Application</name>
<Description>This is some text.</Description>
<image>2130837532</image>
<Sub>
<SubName>PowerISO</SubName>
<SubDescription>This is some text.</SubDescription>
<SubImage>2130837555</SubImage>
</Sub>
<Sub>
<SubName>Microsoft Office</SubName>
<SubDescription>This is some text.</SubDescription>
<SubImage>2130837549</SubImage>
</Sub>
<Sub>
<SubName>Adobe Reader</SubName>
<SubDescription>This is some text.</SubDescription>
<SubImage> 2130837506 </SubImage>
</Sub>
<Sub>
<SubName>Vlc Player</SubName>
<SubDescription>This is some text.</SubDescription>
<SubImage>2130837587</SubImage>
</Sub>
<Sub>
<SubName>Picasa Photo Viewer</SubName>
<SubDescription>This is some text.</SubDescription>
<SubImage>2130837554</SubImage>
</Sub>
<Sub>
<SubName>KM Player</SubName>
<SubDescription>This is some text.</SubDescription>
<SubImage>2130837542</SubImage>
</Sub>
<Sub>
<SubName>Cricket</SubName>
<SubDescription>This is some text.</SubDescription>
<SubImage>2130837524</SubImage>
</Sub>
</Project>
и так далее , но я создал один для основных проектов, но после нажатия одной из, что я хочу, чтобы отобразить суб проектов в соответствии с основным проектом. Мне не удалось создать второй список, в котором будут показаны субпроекты в соответствии с основными проектами. Я сделал это с помощью анализатора SAX. Plz помогите мне в этом.
Это мой метод startElement(), и я хочу, чтобы, если имя проекта является настольным приложением, а субпроект настольного приложения будет показан в списке. Я этого не понимаю. Пожалуйста, помогите мне!
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
currentElement = true;
if (qName.equals("Menu")) {
subList = new ArrayList<SubProjectInfo>();
} else if (qName.equals("Project")) {
subProInfo1 = new SubProjectInfo();
String gh = attributes.getValue("name");
Я просто хочу знать, как работает метод startElement, я имею в виду поток этого метода? D.R. –
Я думаю, вы не поняли SAX. Функция startElement() не вызывается один раз для всего документа, это не DOM. Функция startElement() вызывается много раз: один раз для каждого элемента в вашем XML! Поэтому вы должны сохранить состояние (то есть флаг, о котором я говорил в своем первоначальном ответе) в вашем обработчике, и следовать правилам, которые я описал. –
Спасибо, очень мук человек !!! D.R. –