2011-06-22 82 views
1

我想使用一個變量來指定我正在解析哪個parent.child節點。下面通過使用變量引用父節點來解析XML

是我目前的xml:

<results> 
    <GW> 
      <result> 
        <item>Car</item> 
        <name>Bob</name 
      </result> 
      <result> 
        <item>Bike</item> 
        <name>Tom</name 
      </result> 
    </GW> 

    <BF> 
      <result> 
        <item>Apple</item> 
        <name>Mike</name 
      </result> 
      <result> 
        <item>Melon</item> 
        <name>Julia</name 
      </result> 
    </BF> 


</results> 

這是我的解析代碼。我想用變量items知道哪些節點我應該來解析GW或BF

//DOC IS ASSIGNED THE XML DATA EARLIER IN THE CODE 

Bundle bundle = getIntent().getExtras(); 
int ITEMS = bundle.getInt("selection"); 


NodeList nodes = doc.node[ITEMS].getElementsByTagName("result"); 

for (int i = 0; i < nodes.getLength(); i++) { 
    HashMap<String, String> map = new HashMap<String, String>();  

    Element e = (Element)nodes.item(i); 
    map.put("main_content", XMLfunctions.getValue(e, "item")); 
    map.put("name", XMLfunctions.getValue(e, "name")); 
    mylist.add(map);    
} 

我想只有解析要麼GW或BF的子節點取決於物品的價值。所以如果項目等於0,那麼我會從GW獲得數據,如果它是1,我會從BF獲取數據。

如果我能想這會是這樣的:

NodeList nodes = doc.childNode[ITEMS].getElementsByTagName("result"); 
+0

你能解釋一下你想要得到做了什麼? – o12

+0

我更新了我的問題。請讓我知道,如果它不明確。 – Denoteone

回答

1
Element docElem = doc.getDocumentElement(); 
NodeList nl = docElem.getElementsByTagName("results"); 
Element elem = (Element)nl.item(ITEMS); 
nodes = elem.getElementsByTagName("result");