2013-05-11 3 views
0

Как получить значения xml для детей?XmlPullParser, получающий все дочерние значения

Я имею в виду: если xml.getName() = Section дайте мне свои значения Sub. Я думаю, что я должен использовать цикл while, но я не мог этого достичь!

ИЛИ возможно ли получить родительское значение?

<Top name="Top category"> 

    <Section name="Sub category 1"> 
    <Sub note="text" /> 
    <Sub note="text" /> 
    </Section> 

<Section name="Sub category 2"> 
    <Sub note="text" /> 
    <Sub note="text" /> 
    </Section> 

</Top> 

...

while (eventType != XmlPullParser.END_DOCUMENT) { 

if ((eventType == XmlPullParser.START_TAG) &&(_xml.getName().equals("Section"))){ 
        String _Section = _xml.getAttributeValue(null, "name"); 

// take its Sub note values 


    }  

} 

} 

ответ

1

При работе с выдвижными анализаторами вы должны создать объект таким образом, что он может быть доступен при запуске в подэлемент этого объекта. Например, в этом случае всякий раз, когда вы запускаете START_TAG для раздела, создайте объект раздела и сохраните его в переменной вне области метода. Затем, если вы найдете еще один START_TAG Sub и, раздел не является нулевым, это означает, что вы находитесь в разделе, и вам нужно добавить подраздел. После того как вы найдете END_TAG для раздела, добавьте текущий объект раздела в список, а затем установите для этой переменной значение null.

+0

ли можно использовать 'getDepth()'. Если я использую '_xml.getDepth() - 1', я думаю, что это даст мне глубину родительского, так что можно получить значения родительской глубины? – metemet06

+0

Urrr .. для чего вам нужна глубина? – dmon

+0

Я хочу получить значение родительского узла при получении дополнительных узлов, если это возможно. – metemet06

0

Могу ли я предложить использовать хорошую библиотеку Десериализация как AQuery - https://code.google.com/p/android-query/

Я не путь, связанный с проектом, но, кажется, он может решить вашу задачу в руке гораздо более эффективно и энергично