Hej
Jag försöker först skriva lite xml med XmlTextWriter och sedan läsa den med XmlTextReader. En väg att gå är att skriva till en fil, stänga writern och sedan öppna filen med readern (vilket går fint). En annan variant är att skriva till en Stream (har bla testat MemoryStream), men detta får jag inte att fungera. Strömmen verkar vara tom när jag försköker läsa den.
Har någon erfarenhet av detta?
En annan fråga är oxå hur man snabbt kan få hela innehållet i XmlTextReader eller XmlDocument till en sträng.
Tack på förahand!
renholmMedlem sedan apr. 20012 266 inlägg hej, skulle man kunna få se lite kod. Och i vilket syfte vill du göra om hela XML dokumentet till en sträng?
Syftet är att skicka det över en socket.
Man kanske kan använda en NetworkStream?
(återkommer med kod)
Här kommer lite kod:
Stream stream = new MemoryStream();
XmlTextWriter xtw = new XmlTextWriter(stream, Encoding.UTF8);
xtw.Formatting = Formatting.Indented;
xtw.Indentation = 4;
xtw.WriteStartDocument();
xtw.WriteStartElement("root");
xtw.WriteStartElement("Command");
xtw.WriteString("Connect");
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.WriteEndDocument();
XmlTextReader xtr = new XmlTextReader(stream);
try
{
if (!xtr.EOF)
while(xtr.Read())
DebugWL(xtr.Name);
}
catch(Exception E)
{
DebugWL(E.Message);
}
xtw.Close(); xtr.Close();
... det blir fel på raden: while(xtr.Read())
felet är: root element is missing
och kollar jag längden på strömmen så är den 0 (noll)
Hittade felet!
xtw.Flush();
stream.Position = 0;
måste komma innan XmlTextReader initieringen!
renholmMedlem sedan apr. 20012 266 inlägg ok, bra att du redovisar felet, i förebyggande syfte för andra.