Avatar billede columbus32 Nybegynder
25. januar 2008 - 14:39 Der er 7 kommentarer og
2 løsninger

Problem med at omdanne string til XML

Hejsa.
I min kode har jeg følgende:

protected XmlDocument ivResponseDoc = new XmlDocument();
ivResponseDoc.LoadXml(strResult);



strResult er en string i XML format og dette XML kan vises is VS2005's XML Visualizer. Men når jeg kommer til linien ivResponseDoc.LoadXml(strResult); så får jeg følgende exception:

{"'.', hexadecimal value 0x00, is an invalid character. Line 4, position 1."}


strResult indeholder f.eks. følgende:

<?xml version='1.0'?><response>
<!--BTBi 6.0.04-10 (MSSQL): (c) 2000-2005 update software AG--><!--Generated by update.interface 3.5.01.09 using bbcommss.dll 6.0.04.13--><!--Local system time: 2008-01-25 15:33:53.469--><!--Execution time: 0.031 sec-->
<query><Company tableshort='FI' id='104'><CoGrp/><CoNo>99</CoNo><Company>Firmanavn A/S</Company><ZipCode>2750</ZipCode><City>Ballerup</City><Street>17</Street><Tel>70205000</Tel><Fax>70205001</Fax><E-mail1>marketing@firma.dk</E-mail1><Internet>www.firma.dk</Internet><VATTaxIdNo>234234</VATTaxIdNo><Employees>13</Employees><Solvency/><LegalStatus/><Founded>1989</Founded><FreeK2>Standset</FreeK2><ExtKey>100361074</ExtKey><Text>Selskabet er i normal drift.</Text><FreeD1>23.09.2007</FreeD1><FreeL1>J</FreeL1><FreeL2>N</FreeL2><FreeL3>N</FreeL3></Company></query></response>



Nogen forslag til hvorfor denne string ikke kan omdannet til XML????
Avatar billede erikjacobsen Ekspert
25. januar 2008 - 14:53 #1
Lyder som om nogen har skrevet en null-byte efter linieskiftet efter </response>
Avatar billede columbus32 Nybegynder
25. januar 2008 - 15:17 #2
og hvordan får jeg lige det væk fra min string?
Avatar billede powerpunk Nybegynder
25. januar 2008 - 16:34 #3
prøv evt. at lave en

ivResponseDoc.LoadXml(strResult.Trim());

Så skulle du få fjernet alle non-printing characters fra enderne af din streng.
Avatar billede columbus32 Nybegynder
28. januar 2008 - 08:49 #4
powerpunk << Det giver samme fejl. :-(
Avatar billede powerpunk Nybegynder
28. januar 2008 - 08:55 #5
hmm... så kommer der mere tekst efter 0-byten...

prøv

ivResponseDoc.LoadXml(strResult.Replace("\u0000", ""));

Så forsøger vi at udskifte alle 0-bytes med 'tom streng'. Prøv alternativt at udskifte "" med en eller anden genkendelig karakter for at finde ud af hvor mange gange den optræder...

Det ku' stadig være interessant at vide hvor den kom fra, da det ærlig talt ikke virker så pænt at skulle lave sådan en replace...
Avatar billede powerpunk Nybegynder
28. januar 2008 - 08:56 #6
Kommer din XML tilfældigvis ud af et NCHAR felt i en database?
Avatar billede columbus32 Nybegynder
28. januar 2008 - 09:03 #7
Det kommer som en string fra et interface til et produkt som hedder Marketing Manager.
Avatar billede powerpunk Nybegynder
28. januar 2008 - 10:10 #8
hmm... kender det ikke...

Men virker det at bruge replace?
Avatar billede columbus32 Nybegynder
28. januar 2008 - 13:04 #9
Det virker :-) Tusinde tak.
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