Me explica o resultado

Screenshot_2Screenshot_1
As duas imagens acima uma do XML e outra do código funcionando.
Eu queria entender por que saiu desse jeito? Sendo que no código a ideia era mostrar um nome e “esta na variável”, e armazenar um child em um espaço espaço do arraylist bom estou começando a usar xml agora portanto toda dica e critica construtiva é bem vinda.

Código que faz isso abaixo(“Apenas aprendizado”):

public void connect() throws Exception {

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document doc = db.parse("Registro.xml");
    
    Element registro = doc.getDocumentElement();
    
    NodeList registroL = registro.getElementsByTagName("Nome");
    
    for (int i = 0; i < registroL.getLength(); i++) {
        
        Element registroE = (Element) registroL.item(i);
       
        Nome.add(registroE.getTextContent());
        
        System.out.println(Nome+"esta na variavel");
        
    }
    
    
    
    
}

Você está fazendo um println do objeto ArrayList, por padrão o método toString() dele retorna uma String entre colchetes, contendo cada elemento separado por vírgula.
Põe o println depois do laço pra ver. :slight_smile:

Dicas:

Adicione os nomes dessa forma, pra eliminar as quebras de linha que há entre as tags:

Nome.add(registroE.getTextContent().trim());

Renomeie a variável Nome para nomes, com minúsculo, como segue a convenção Java e no plural, pois trata-se de uma lista contendo nomes e não um único nome.

1 curtida

Não teria como eu mostrar apenas um nome? No caso ter um nome por posição no meu arraylist e também mostrar sem os colchetes?

Tem, o método get retorna o elemento na posição desejada.

1 curtida