Leitura de XML usando DOM

Pessoal, dado o trcho xml abaixo, necessito saber quantos PowerTransformer estão imediatamente abaixo de Substation:

<Substation name="nome BCH" key="se12"> <PowerTransformer name="TR da Substation" key="tr1"> </PowerTransformer> <VoltageLevel name="138" key="NIVEL DE TENSAO NUMERO 1" > <PowerTransformer name="TR do Voltage Level"> </PowerTransformer> </VoltageLevel> </Substation>

Tentei usando o seguinte código:

[code]// atribuição da Substation como elemento principal
Element tagSE = (Element) seNodeList.item(i);

// verifica se existe PowerTransformer em Substation
NodeList trList = tagSE.getElementsByTagName(“PowerTransformer”);

numTrafos = trList.getLength();
[/code]

O problema é que este código me retorna TODOS os PowerTransformer, ou seja, os que estão imediatamente abaixo da Substation e também os que estão abaixo do VoltageLevel.
Alguém sabe como posso recuperar somente o abaixo da Substation?

Procure por XPATH. Facilita muito.

[]´s

Humberto Lima

No seu caso é bem fácil a expressão XPath, ela seria:

"/Substation/PowerTransformer"

A expressão iria lhe voltar um conjunto de nós. Por exemplo, digamos que você tivesse o XML

 <Substation name="nome BCH" key="se12">  
    <PowerTransformer name="TR da Substation" key="tr1">  
      bla
    </PowerTransformer>                          
    <PowerTransformer name="TR da Substation" key="tr2">  
      ble
    </PowerTransformer>                          
    <PowerTransformer name="TR da Substation" key="tr3">  
      bli
    </PowerTransformer>                          
    <VoltageLevel name="138" key="NIVEL DE TENSAO NUMERO 1" >  
       <PowerTransformer name="TR do Voltage Level">  
       </PowerTransformer>   
       <PowerTransformer name="TR do Voltage Level x">  
       </PowerTransformer>   
       <PowerTransformer name="TR do Voltage Level y">  
       </PowerTransformer>   
    </VoltageLevel>  
 </Substation>

A expressão “/Substation/PowerTransformer” volta 3 nós:

1:<PowerTransformer name="TR da Substation" key="tr1">  
      bla
    </PowerTransformer>
2:<PowerTransformer name="TR da Substation" key="tr2">  
      ble
    </PowerTransformer>
3:<PowerTransformer name="TR da Substation" key="tr3">  
      bli
    </PowerTransformer>

(pus um número na frente de cada nó para facilitar).

Digamos agora que você só queira os PowerTransformer cuja chave fosse key1=‘tr2’. Então a expressão XPATH seria:

/Substation/PowerTransformer[@key='tr2']

e a saída seria:

1:<PowerTransformer name="TR da Substation" key="tr2">  
      ble
    </PowerTransformer>

thingol e humberto,
maravilha, problema resolvido.
obrigado.