Problemas com caracteres em XML???
Tenho um componente simples para montagem de um XML, no qual uso constatemente para chamar alguns serviços de minha aplicação.
public static String MontarXmlIn(String xmlIn) {
StringBuffer buffer = new StringBuffer();
buffer.append("<?xml version='1.0' encoding='ISO-8859-1'?>");
buffer.append("<msg>");
buffer.append("<msgBody>");
buffer.append(xmlIn);
buffer.append("</msgBody>");
buffer.append("</msg>");
return(buffer.toString());
}
Meu problema é que quando eu envio o parametro xmlIn com algum caractere especial gera erro no xml ao passar para o serviço.
Exemplo
...
xmlIn = "<campo>Teste caractere & </campo>";
MinhaClasse.MontarXmlIn(xmlIn);
...
Devolve:
<?xml version='1.0' encoding='ISO-8859-1'?>
<msg>
<msgBody>
<campo>Teste caractere & </campo>
</msgBody>
</msg>
Isso fica como xml mal formatada, pois o correto é seria:
<?xml version='1.0' encoding='ISO-8859-1'?>
<msg>
<msgBody>
<campo>Teste caractere &amp </campo>
</msgBody>
</msg>
Alguem sabe como posso sanar este problema dentro do metódo MontarXmlIn, afim de gerar menor impacto para minha aplicação???
Será que se eu chamar o metódo enconde dentro java.net.URLEncoder, no xmlIn resolve meu problema? Ou pode implicar em alguma outra coisa?
Grato,
Pablo