Avatar billede pulsar Nybegynder
01. juli 2003 - 23:34 Der er 3 kommentarer og
1 løsning

XmlSerializer, TextWriter

Når jeg serialize et Object array sådan:
XmlSerializer x = new XmlSerializer(typeof(object[]));
TextWriter writer = new StreamWriter("C:\\temp.xml");
x.Serialize(writer,ar); (ar = Object[])

Så bliver outputtet fint:

<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfAnyType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <anyType xsi:type="xsd:int">20</anyType>
  <anyType xsi:type="xsd:int">20</anyType>
  </ArrayOfAnyType>


Men jeg ønsker ikke en fil, men istedet for xml'et som en string.


Derfor bruger jeg:

XmlSerializer x = new XmlSerializer(typeof(object[]));
System.Text.StringBuilder builder = new System.Text.StringBuilder();
TextWriter writer = new StringWriter(builder);
x.Serialize(writer,ar);
string str = builder.ToString();

men så bliver xml'et IKKE korrekt:

str =
<?xml version=\"1.0\" encoding=\"utf-16\"?>
\r\n<ArrayOfAnyType xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
\r\n  <anyType xsi:type=\"xsd:int\">20</anyType>
\r\n  <anyType xsi:type=\"xsd:int\">20</anyType>
\r\n</ArrayOfAnyType>


Der er nogle problemmer med \r\n og encoding

Nogen ideer på en løsning?
Avatar billede jakobandersen Nybegynder
01. juli 2003 - 23:43 #1
Jeg ville umiddelbart tro du kan klare det med noget ala:

Encoding enc = System.Text.Encoding.UTF8;
XmlSerializer x = new XmlSerializer(typeof(object[]);
MemoryStream ms = new IO.MemoryStream();
x.Serialize(ms,ar);
string str = enc.GetString(ms.ToArray());
Avatar billede pulsar Nybegynder
01. juli 2003 - 23:55 #2
ikke helt.

resultatet bliver nu:

<?xml version=\"1.0\"?>\r\n<ArrayOfAnyType xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n  <anyType xsi:type=\"xsd:int\">20</anyType>\r\n  <anyType xsi:type=\"xsd:int\">20</anyType>\r\n</ArrayOfAnyType>
Avatar billede pulsar Nybegynder
07. juli 2003 - 16:54 #3
lukket
Avatar billede pulsar Nybegynder
07. juli 2003 - 16:58 #4
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester