Suprimir Tags XML[Resolvido]

Pessoal estou montando um xml com JDOM e gostaria que quando uma tag não possuir um valor ela seja suprimida.
Pensei em montar uma rotina para percorrer todo XML usando um laço, verificando se a tag possui valor caso esteja vazia então suprima a tag.
Alguém teria uma idéia melhor?

Obrigado

replace com regular expression… talvez?

Explique melhor o que você quer. Você quer que isto

<cliente>
<nome>José Aparecido</nome>
<endereco></endereco>
</cliente>

se transforme nisto aqui:

<cliente>
<nome>José Aparecido</nome>
</cliente>

ou nisto aqui:

<cliente>
<nome>José Aparecido</nome>
<endereco/>
</cliente>

Ou você quer que isto aqui:

<cliente nome="José Aparecido" endereco="" />

se transforme nisto aqui:

<cliente nome="José Aparecido" />

?

Thingol seria o seu primeiro exemplo:

Quando a tag não possuir um conteudo ela deve desaparecer.

Obrigado

Para aqueles que talvez encontrem o mesmo problema criei uma rotina para retirar as tags que não possuem conteudo:

private Element isEmptyTags(Element element) {
				
		Element removeElement = element;
		
		ContentFilter filter = new ContentFilter();
		filter.setTextVisible(false);
		
		Iterator<Element> iterator = element.getDescendants(filter);
		
		while ( iterator.hasNext()) {
			
			Element el = (Element)iterator.next();
			
			if ( el.getChildren().size() > 0 ) {
				removeElement = el;
			} else {
				if ( el.getTextTrim().equals("")) {
					iterator.remove();  
					removeElement.removeContent(el);
					
				}
			}
		}
		return element;
	}

Estou utilizando JDOM e essa foi a forma mais simples que encontrei para resolver o meu problema.

Utilizei um objeto ContentFilter para listar somente os elementos do meu arquivo XML, depois verifico se a tag corrente possuiu filhos caso sim guardo a referencia do objeto Element para remover os elementos sem texto.
A linha que possui o comando iterator.remove() foi adicionada para não ser gerada uma exception ConcurrentModificationException pois estamos modificando um Iterator enquanto percorremos o mesmo.

Valeu

Valeu

Pessoal estou com problema, não estou conseguindo ler os sub nós exemplo o logradouro o meu codigo:

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package ler;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import java.util.logging.Level;
import java.util.logging.Logger;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class LerXml{

public static void main(String[] arqgv){
    try {
        //Aqui você informa o nome do arquivo XML.
        File f = new File("c:/mural.xml");

        //Criamos uma classe SAXBuilder que vai processar o XML4
        SAXBuilder sb = new SAXBuilder();

        //Este documento agora possui toda a estrutura do arquivo.
        Document d = sb.build(f);

        //Recuperamos o elemento root
        Element mural = d.getRootElement();
        List elements = mural.getChildren();
        Iterator iterator = elements.iterator();
        //Iteramos com os elementos filhos, e filhos do dos filhos
        while (iterator.hasNext()) {
            Element element = (Element) iterator.next();
            System.out.println("Códido:     "+ element.getAttributeValue("id"));
            System.out.println("Prioridade: "+ element.getAttributeValue("prioridade"));
            System.out.println("Para:       "+ element.getChildText("para"));
            System.out.println("De:         "+ element.getChildText("de"));
            System.out.println("Corpo:      "+ element.getChildText("corpo"));
            System.out.println("logradouro: "+ element.getChildText("logradouro"));
       }
    } catch (JDOMException ex) {
        Logger.getLogger(LerXml.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(LerXml.class.getName()).log(Level.SEVERE, null, ex);
    }
}

}

e o arquivo XML:

<mural>
<mensagem id=“00001” prioridade=“10”>
<para>nome de envio</para>
<de>remetente</de>
<corpo>Este e apenas um teste</corpo>
<endereco>
<logradouro>R DA ASSEMBLEIA</logradouro>
<cep>06300-000</cep>
</endereco>
</mensagem>
</mural>

se vocês me ajudarem me ajudar eu agradeço.

Bom dia pessoal, estou com um problema parecido com o de voces, porem no meu caso devo expandir as tags vazias, deixar como no exemplo abaixo.
Estou usando o netbeans, e JDOM, mas ele deixa as tagas vazias assim:

e eu gostaria que ficasse assim: