Jag har problem med specialtecken i xml. När data skickas från och till klienten kan hända att användaren skriver in t ex '&'. Då får jag felmeddelande när LoadXml() körs. Koden ser lite konstig ut... Koden för läsning är inte särskilt intressant. Bättre vore att se koden som gör om alla & till & samt ett exempel på ett icke-fungerande XML-dokument (efter teckenbytet). Då kan vi visa var du gör fel, vad du missar. Vad är klienten för något? Du bör se till att när klienten sänder sitt data så paketeras det in i XML på rätt sätt dvs & översätts till & osv. (gäller ju även < >). Detta sköts automatiskt av DOMDocument om klienten skapar ett sådant. t.ex. DomDoc.documenElement.firstChild. Value = "&"; nu så kommer "&" att översättas till "&". Annars får du ju använda Regexp eller liknande på servern för att tvätta texten så att den blir "XML-kompatibel" men det är väl en mindre bra lösning. Tack för hjälpen. Det gjorde susen att skapa input strömmen med xmldom-objektet. Specialtecken och xml
Har fått tipset att göra om alla '&' till "&", men problemet kvarstår eftersom det fortfarande finns ett &-tecken.
Här är koden:
XmlDocument doc = new XmlDocument();
byte[] buffer = new byte[Request.InputStream.Length];
Request.InputStream.Read(buffer, 0, buffer. string inputString = new string(System.Text.UTF8Encoding.UTF8.GetChars(buffer));
doc.Load(inputString);
Några förslag?
Sv: Specialtecken och xml
Men om du försöker göra vad jag tror att du försöker göra så förväntar sig Load-metoden som tar en sträng som argument en sökväg till en XML-fil.
Vill du sätta XML:en i dokumentet får du använda InnerXml-propertyn.Sv: Specialtecken och xml
Sv: Specialtecken och xml
edit:
Och koden ser som sagt lite skum ut.. Detta ska fungera
XmlDocument doc = new XmlDocument();
doc.Load(Request.InputStream);Sv:Specialtecken och xml