Pegar tag XML e colocar num Array

2 respostas Resolvido
java
A

Estou tentando pegar tag CFOP de NFe e colocar num ArrayLista, consegui pegar, mas está mostrando apenas a tag ao invés dos valores.
Gostaria de exibir os valores.

Usei o seguinte trecho para pegar.

NodeList list = document.getElementsByTagName("CFOP");
		ArrayList<String> nodes = (ArrayList<String>) IntStream.range(0, list.getLength())
				.mapToObj(list::item)
				.map(n -> n.getNodeName())
				.collect(Collectors.toList());

2 Respostas

A

Acho que o problema é essa linha:

.map(n -> n.getNodeName())

Você está pegando apenas o nome do Node, ou seja, a tag.
Para pegar o valor use:

.map(n -> n.getNodeValue())
A
Solucao aceita

@AbelBueno, usando getNodeValue(), ele retornou null, ai achei um exemplo parecido usando com o getTextContent(), ai deu certo.

Muito Obrigada!!!

Vou colocar o trecho atualizado.

NodeList cfop = document.getElementsByTagName(CFOP);

ArrayList nodes = (ArrayList) IntStream.range(0, cfop.getLength())

.mapToObj(cfop::item)

.map(n -> n.getTextContent())

.collect(Collectors.toCollection(ArrayList::new));

System.out.println(nodes);

Criado 15 de fevereiro de 2021
Ultima resposta 17 de fev. de 2021
Respostas 2
Participantes 2