2013-05-11 88 views
0

如何獲取子xml值?XmlPullParser獲取所有子值

我的意思是:如果xml.getName() = Section給我它的子值。我想我必須使用一個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,都可以創建一個Section對象,並將其保存在方法範圍外的變量中。然後,如果您發現另一個START_TAG Sub 該部分不爲空,則表示您在某個部分中,並且需要添加一個子部分。找到Section的END_TAG後,將當前的Section對象添加到列表中,然後將該變量設置爲null

+0

是有可能使用'getDepth()'。如果我使用'_xml.getDepth() - 1',我認爲它會給我父母的深度,所以有可能得到父深度的值? – metemet06 2013-05-11 21:48:54

+0

Urrr ..你需要什麼深度? – dmon 2013-05-11 23:09:26

+0

我想獲取父節點值,同時獲取子節點(如果可能的話)。 – metemet06 2013-05-12 07:01:15

0

我可以建議使用一個良好的反序列化圖書館像AQuery - https://code.google.com/p/android-query/

我沒有與該項目相關的方法,但似乎它可以更有效地解決您的任務在手,魯棒