2011-10-31 75 views
1

說,我有一個XML節點,我需要得到某個元素的內容,說如何在Android中獲取XML的元素內容?

NodeList nodes = doc.getElementsByTagName("msg"); 

    for (int i = 0; i < nodes.getLength(); i++) { 

     Element e = (Element)nodes.item(i); 
     Log.e("XML: " , e.get... WHAT GOES INTO HERE ...("id")); 
    } 

,我需要得到「ID」元素的內容,什麼是做到這一點的最好方法是什麼?

謝謝!

+0

你能提供的XML樣本格式? –

回答

2

如果你的XML的結構看起來是這樣的:

<someroot> 
    <msg> 
     <sometag>hi</sometag> 
     <id>Some Text</id> 
    </msg> 
<someroot> 

然後,你可以這樣做訪問ID節點的內容:

NodeList nodes = doc.getElementsByTagName("msg"); 
     for (int i = 0; i < nodes.getLength(); i++) {   
      if (nodes.item(i).getNodeType() == Node.ELEMENT_NODE) { 
       NodeList msgChildren = nodes.item(i).getChildNodes(); 
       for (int j = 0; j < msgChildren.getLength(); j++) { 
        if (msgChildren.item(j).getNodeType() == Node.ELEMENT_NODE) { 
         Element e = (Element) msgChildren.item(j); 
         if ("id".equals(e.getNodeName())) { 
          System.out.println(e.getTextContent()); 
         } 
        } 
       } 
      } 
     } 
+0

但是如果在「MSG」中還有其他節點,除了「ID」? – Roger

+0

在這種情況下,您需要遍歷msg的子節點,直到找到具有nodeName ==「id」的子節點。那麼你應該可以調用getTextContent。 – Chris

+0

好的...我應該怎麼做?某種元素列表? – Roger