JDOM - Como deletar um determinado filho

4 respostas
J

Ao fazer raiz = d.getRootElement();, toda a estruturado do meu xml fica em raiz. Gostaria de deletar um filho de raiz chamado group, que tem um Atributo name igual a “Endereco”.

Tem como deletar esse elemento especifico a partir de raiz, de forma direta, sem precisar colocar todos os filhos de raiz numa lista e depois sair pecorrendo um a um ??

Tentei algo assim :

boolean rm = raiz.removeChild("group");

Mas dessa forma, ela vai deletar apenas o primeiro nó cujo o nome é group.

valeu !!

4 Respostas

plentz

Tente primeiro pegar todos os filhos do nó pai que se encaixam com seu filtro e em seguida use o método para remover os filhos…

tip: http://www-inf.int-evry.fr/cours/WebServices/XML/jdom/org/jdom/Document.html

J

diego_sl:
Tente primeiro pegar todos os filhos do nó pai que se encaixam com seu filtro e em seguida use o método para remover os filhos…
tip: http://www-inf.int-evry.fr/cours/WebServices/XML/jdom/org/jdom/Document.html

Diego, estou seguindo seu conselho, no entanto estou com um pouco de dificuldade …
Criei uma classe para filtrar, ou seja, para retirar todos os filhos de raiz cujo nome é "group "

private static class FiltraJRxml implements Filter
    {

        public boolean matches(Object obj)
        {
            if (obj instanceof Element)
            {
                Element elem = (Element) obj;
                if (elem.getName().equals("group"))
                {

                    return true;

                }
            }
            return false;
        }
    }

Então apliquei esse filtro a um xml que eu carreguei, assim :

Document d = sb.build(f);
d.removeContent(new FiltraJRxml());

No entanto não aconteceu nada . Sei que o problema tá no filtro !! Como alterar o método matches, desse filtro, de tal forma que ele delete esse nó group ??

valeu !!!

plentz

Javax, manda ai o seu XML que você está tentando aplicar seu código. Pode ser algum problema de formatação nele também.

J

Diego, não é problema no xml não, iclusive essa duvida desse post eu ja congui resolver. Minha duvida agora resume-se em reapoveitar o no raiz. Veja esse post : http://www.guj.com.br/posts/list/26479.java

valeu cara !!!

Criado 22 de junho de 2005
Ultima resposta 23 de jun. de 2005
Respostas 4
Participantes 2