Czy istnieje sposób uzyskania kodowania XML w funkcji toString ()?
Przykład:
xml.Save("myfile.xml");
prowadzi do
<?xml version="1.0" encoding="utf-8"?>
<Cooperations>
<Cooperation>
<CooperationId>xxx</CooperationId>
<CooperationName>Allianz Konzern</CooperationName>
<LogicalCustomers>
Ale
tb_output.Text = xml.toString();
prowadzi do takiego wyniku
<Cooperations>
<Cooperation>
<CooperationId>xxx</CooperationId>
<CooperationName>Allianz Konzern</CooperationName>
<LogicalCustomers>
...
c#
linq-to-xml
Henrik P. Hessel
źródło
źródło
XDocument.Save(TextWriter)
implementacji i po prostu ignoruje kodowanie deklaracji, w przeciwieństwie do implementacjiXDocument.Save(String)
lubXDocument.Save(Stream)
. Zastanawiam się, dlaczego ...StringWriter
, chyba że użyjesz takiego, który nadpisujeEncoding
właściwość. Mam inną odpowiedź na ten temat. Myślałem, że mówisz, że całkowicie porzuciłeś "kodowanie" ...Właściwość Declaration będzie zawierać deklarację XML. Aby uzyskać treść plus deklarację, możesz wykonać następujące czynności:
źródło
tb_output.Text = @"<?xml version=""1.0"" encoding=""utf-8"" ?>" + xml;
... = $"{xdoc.Declaration}{Environment.NewLine}{xdoc}";
Użyj tego:
źródło
Podobało mi się to
Zobacz poniżej, co otrzymuję w DistributorInfo
źródło
Podobnie jak inne odpowiedzi +1, ale trochę więcej szczegółów na temat deklaracji i nieco dokładniejsza konkatenacja.
<xml />
deklaracja powinna znajdować się w osobnym wierszu w sformatowanym pliku XML, więc upewniam się, że dodano nową linię. UWAGA: użycieEnvironment.Newline
tak spowoduje utworzenie nowej linii specyficznej dla platformyOba wyniki dają:
źródło
Kilka z tych odpowiedzi rozwiązuje prośbę nadawcy, ale wydaje się, że jest to zbyt skomplikowane. Oto prosta metoda rozszerzenia, która pozwala uniknąć konieczności stosowania oddzielnego modułu zapisującego, obsługuje brakującą deklarację i obsługuje standardowy parametr ToString SaveOptions.
Aby użyć rozszerzenia, po prostu wymień
xml.ToString()
goxml.ToXmlString()
źródło
Możesz również użyć XmlWriter i wywołać metodę
metoda.
źródło
źródło