Expressão Regular + xml

Fala galera… blz?!
Gostaria de uma ajuda para resolver a seguinte situação.
Eu preciso extrair alguns dados de um arquivo xml, porém, este aquivo xml tem problemas na estrutura,então
logo eu preciso tratar esse xml como string.
Então eu gostaria de fazer uma expressão regular que me retorne o conteúdo do atributo Id.

<infNFe versao=\"2.00\" Id=\"NFe35121013261046000610550010000003621000019785\">abc</infNFe>

comecei com alguma coisa assim, mas não consegui fazer pegar apenas o valor do id

[code]String frase = “<infNFe versao=“2.00” Id=“NFe35121013261046000610550010000003621000019785”>abc”;
Pattern p = Pattern.compile("<(infNFe+.Id.)>");
Matcher m = p.matcher(frase);

		while(m.find())
			System.out.println(m.group(1));[/code]

Como eu posso montar a expressão?
obg.

Bom, se for só esse o caso fica bem fácil até: public static void main(String[] args){ String texto = "<infNFe versao=\"2.00\" Id=\"NFe35121013261046000610550010000003621000019785\">abc</infNFe>"; Pattern p = Pattern.compile("NFe\\d+"); Matcher m = p.matcher(texto); if(m.find()){ System.out.println(m.group()); } }

ooo cara… valeo, era bem isso…
na real agora eu tenho que procurar por alguns elementos e pegar o valor, mas vou quebrar a cabeça mais um pouco,
se não rolar ai peço seu auxilio…rs

valeo

Eu mexi com a NFe também e sei como é. Quando eu precisava extrair o valor de uma tag, as vezes fazia assim.

Segue um método que eu fiz pra me auxiliar, talvez te auxilie também.[code] public static String extrairTagXml(String xml, String tag) {
String valor = “”;
String endTag = “</” + tag.substring(1);

	Pattern p = Pattern.compile(tag + "(.*?)" + endTag);
	Matcher m = p.matcher(xml);

	if (m.find()) {
		valor = m.group(1);
	}

	return valor;
}[/code]

exatamente isso…
te devo uma cerveja :smiley:
muito obrigado!!!