Como impedir a conversão de & para & amp; usando xmlTextWriter?
-
24-09-2019 - |
Pergunta
O '&' no texto é escapar e é convertido para &
Ao criar o arquivo XML usando o XMLTextWriter, mas não quero que a conversão ocorra como evitá -lo?
Existe alguma outra maneira além de usar o WriterAw Func of XMLTextWriter?
Solução
Se você colocar um ampers e inquilino em XML, não é mais válido XML.
Suas duas opções são escapar (o que sua biblioteca está fazendo):
<tag>One & another</tag>
Ou envolva -o em CDATA:
<tag><![CDATA[One & another]]></tag>
o que pode ser feito por:
xmlWriter.WriteCData("One & another");
Outras dicas
Por que você não quer que isso aconteça? Parece -me que a biblioteca está aplicando o caractere correto escapando conforme exigido pelo XML.
Não tenho certeza se funcionará, mas você pode verificar as propriedades XMLWriterSettings disponíveis no XMLTextWriter.Settings, especialmente a propriedade CheckCharacters.
Por outro lado, como Brian Agnew mencionou, não codificando o & para & pode ser o caminho errado a seguir, pois invalidará seu XML (a menos que você já o codificasse e, nesse caso, você pode apenas decodificá -lo antes de dar para a classe XMLTextWriter.