Caracteres ilegais em XML
Tenho uma aplicação.Net escrita em C# que grava informações no formato XML. A aplicação serializa os dados da aplicação em xml. A aplicação contém uma caixa de texto onde o usuário está livre para digitar qualquer texto. Tenho casos em que os utilizadores conseguiram introduzir caracteres, principalmente quando copiam e colam texto de outras aplicações para a caixa de texto, onde o documento xml fica corrompido. Existe uma abordagem geral para gerir caracteres ilegais em documentos xml sem ter de filtra-os em todas as caixas de texto ao entrar.
Amostra de um documento corrompido<Propery>
<Name>Alimentação Controlador</Name>
<Value>24</Value>
<Unit>Vca</Unit>
</Propery>
o documento é serializado com ASCIIEncoding.UTF8
4 answers
Acho que a tua melhor aposta é "SafeEncode" a cadeia introduzida pelo utilizador. esta ligação http://msdn.microsoft.com/en-us/library/system.security.securityelement.escape (VS.80).aspx mostra-lhe como fazê-lo facilmente com uma chamada para a segurança.Método de Escape (texto s).
Pode usar mesmo estes caracteres "incriminados", se quiser, usando CDATA
Deve utilizar as melhores práticas sugeridas pela JTMon.
Também encontrei a mesma situação ao exportar para XML. Eu não sei se funcionaria para você ou não, mas tente usar stringbuilder
em vez de string
para gerar xml.
Podes tentar isto também
i.SubItems[0].Text.Trim('\0')
Espero que ajude.
Deve substituir os seguintes caracteres ilegais por:
<
(
&
(&)
>
(>)
"
(")
'
(')