Retorno de blocos em xml

E aí galera, tranquilo?

Gostaria de tirar uma dúvida, tenho um arquivo xml que ele traz blocos de retornos dinâmicos, e eu tenho que alinhá-los da seguinte forma:

4 primeiros blocos contendo os dados do parâmetro qual eu passei, caso não, os quatros blocos devem ser vazios;
6 últimos blocos contendo informações do restante dos blocos;

Sendo que os primeiros blocos podem trazer informações quais não se referem ao parâmetro passado, além que os blocos contém iguais, e eu apenas identifico a separação de cada um por apenas duas tags por exemplo

[code]
conteudo
conteudo

conteudo conteudo [/code]

Caso eu queira retornar qualquer coisa, eu preciso apenas passar o arquivo, a tag e a posição da tag que eu quero, sendo que estou com dificuldades para a parte do alinhamento dos dados.

Método que percorre as tags:

public static String getRetorno(String pXML, String pTag, int pPosicao) { String vRetorno = ""; int vRowBegin = -1; int vPosicaoAtual = 0; // iterador que verifica se existe a posição desejada while (vPosicaoAtual < pPosicao) { vRowBegin = pHTML.indexOf("&lt;row&gt;", vRowBegin + 1); if (vRowBegin == -1) { vPosicaoAtual = pPosicao; } else { vPosicaoAtual++; } }// fim do while int vRowEnd = pHTML.indexOf("&lt;/row&gt;", vRowBegin); if(vRowEnd > -1) { // com o row definido, pegar a tag referente ao retorno desejado String vTemp = pHTML.substring(vRowBegin, vRowEnd); String vTag = "&lt;" + pTag + "&gt;"; String vTag2 = "&lt;/" + pTag + "&gt;"; int vTagBegin = vTemp.indexOf(vTag); int vTagEnd = vTemp.indexOf(vTag2); if ((vTagBegin > -1) && (vTagEnd > vTagBegin)) { vRetorno = vTemp.substring(vTagBegin + vTag.length(), vTagEnd); } } else { return vRetorno; } return vRetorno; }

Bem, qualquer ajuda já é de bom grado!