Existe alguma maneira de obter a codificação xml na função toString ()?
Exemplo:
xml.Save("myfile.xml");
leva a
<?xml version="1.0" encoding="utf-8"?>
<Cooperations>
<Cooperation>
<CooperationId>xxx</CooperationId>
<CooperationName>Allianz Konzern</CooperationName>
<LogicalCustomers>
Mas
tb_output.Text = xml.toString();
leva a uma saída como esta
<Cooperations>
<Cooperation>
<CooperationId>xxx</CooperationId>
<CooperationName>Allianz Konzern</CooperationName>
<LogicalCustomers>
...
c#
linq-to-xml
Henrik P. Hessel
fonte
fonte
XDocument.Save(TextWriter)
implementação e ele simplesmente ignora a codificação da declaração, em oposição aXDocument.Save(String)
ouXDocument.Save(Stream)
implementações. Eu me pergunto por que ...StringWriter
, a menos que você use um que substitua aEncoding
propriedade. Eu tenho outra resposta sobre isso. Achei que você estava dizendo que a "codificação" estava descartada totalmente ...A propriedade Declaração conterá a declaração XML. Para obter o conteúdo mais a declaração, você pode fazer o seguinte:
fonte
tb_output.Text = @"<?xml version=""1.0"" encoding=""utf-8"" ?>" + xml;
... = $"{xdoc.Declaration}{Environment.NewLine}{xdoc}";
usa isto:
fonte
Eu gostei disso
Veja abaixo o que recebo em distributorInfo
fonte
Semelhante às outras respostas +1, mas com um pouco mais de detalhes sobre a declaração e uma concatenação um pouco mais precisa.
<xml />
declaração deve estar em sua própria linha em um XML formatado, portanto, estou garantindo que adicionamos a nova linha. NOTA: usarEnvironment.Newline
assim produzirá a nova linha específica da plataformaAmbos os resultados produzem:
fonte
Algumas dessas respostas atendem ao pedido do autor da postagem, mas parecem complicadas demais. Aqui está um método de extensão simples que evita a necessidade de um gravador separado, lida com uma declaração ausente e oferece suporte ao parâmetro padrão ToString SaveOptions.
Para usar a extensão, basta substituir
xml.ToString()
porxml.ToXmlString()
fonte
Você também pode usar um XmlWriter e chamar o
método.
fonte
fonte