2011-06-17 14 views
5

Böyle bir XML vardır:Android (XML) Belgesindeki bir Düğümden Etiket Adına Göre Öğeler Al?

<!--...--> 
    <Cell X="4" Y="2" CellType="Magnet"> 
    <Direction>180</Direction> 
    <SwitchOn>true</SwitchOn> 
    <Color>-65536</Color> 
    </Cell> 
    <!--...--> 

birçok Cell elements var, ve ben GetElementsByTagName tarafından Hücre Düğümleri alabilirsiniz. Ancak, Node sınıfı DOESN'T'in GetElementsByTagName yöntemine sahip olduğunu anlıyorum! ChildNodes listesine gitmeden bu hücre düğümünden Direction düğümünü nasıl alabilirim? sınıfından Tag name'ye göre NodeList alabilir miyim?

Teşekkür ederiz.

cevap

13

NodeList öğeyi Element ile tekrar sınıfından Element sınıfından kullanabilirsiniz. En iyi yaklaşım, projenizde Direction, Switch, Color gibi Cell Object yapmaktır. Ardından verilerinizi bu gibi bir şeyle paylaşın. senin getCharacterDataFromElement() aşağıdaki gibi olacaktır

String direction []; 
NodeList cell = document.getElementsByTagName("Cell"); 
int length = cell.getLength(); 
direction = new String [length]; 
for (int i = 0; i < length; i++) 
{ 
    Element element = (Element) cell.item(i); 
    NodeList direction = element.getElementsByTagName("Direction"); 

    Element line = (Element) direction.item(0); 

    direction [i] = getCharacterDataFromElement(line); 

    // remaining elements e.g Switch , Color if needed 
} 

.

public static String getCharacterDataFromElement(Element e) 
{ 
    Node child = e.getFirstChild(); 
    if (child instanceof CharacterData) 
    { 
     CharacterData cd = (CharacterData) child; 
     return cd.getData(); 
    } 
    return ""; 
} 
+0

Teşekkürler, Düğümün Öğeye dönüştürülebileceğini unuttum! Mutlu kodlama :) –