Retorno de blocos em xml

0 respostas
C

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

<tag> 
<tag1>conteudo</tag1>
<tag2>conteudo</tag2>
</tag>

<tag> 
<tag1>conteudo</tag1>
<tag2>conteudo</tag2>
</tag>

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!

Criado 29 de março de 2012
Respostas 0
Participantes 1