2013-12-12 49 views
-1

我有以下XML結構:僅查找第一組XML(DOM)

<doc> 
    <group name="name1"> 
     <group name="subname1"> 
      <item att="att1"/> 
     </group> 
     <group name="subname3"> 
      <item att="att3"/> 
     </group> 
    </group> 
    <group name="name2"> 
     <group name="subname2"> 
      <item att="att2"/> 
     </group> 
    </group> 
</doc> 

如果我使用dom.getDocumentElement().getElementsByTagName("group")然後我得到我的XMLFILE的所有 「組」(名稱1,subname1,subname3 ,. ......)。

如何只找到第一組(name1和name2)?

回答

2

試試這個:

dom.getDocumentElement().getElementsByTagName("group")[0]; 
+0

「表達式的類型必須是數組類型,但它解析爲NodeList」 –

0

試試這個..

NodeList nodeList = doc.getElementsByTagName("doc"); 
for (int i = 0; i < nodeList.getLength(); i++) 
{     
     Node node = nodeList.item(i); 

     if(node.getNodeType() == Node.ELEMENT_NODE) 
     { 
      Element e = (Element) node; 
      NodeList resultNodeList = e.getElementsByTagName("group"); 
      int resultNodeListSize = resultNodeList.getLength(); 
      for(int j = 0 ; j < resultNodeListSize ; j++) 
      { 
       Node resultNode = resultNodeList.item(j); 
       Element fstElmnt1 = (Element) resultNode.getParentNode(); 
       Log.v("name--", ""+ (fstElmnt1.getAttribute("name"))); 
      } 
     } 
} 
0

您可以使用XPath作爲解釋here和使用XPath表達式這樣/doc/group/@name = 'name1' or /doc/group/@name = 'name2'只檢索組,一組屬性字段'name'等於name1name2

如果您只想提取doc的子組標籤,則XPath表達式縮寫爲/doc/group。如果它們在您的XML中被定義爲<doc>的子項,它也會自動檢索<group name="name3"><group name="name4">