webForumDet fria alternativet
Logga in / Bli medlem

XmlTextReader & XmlTextWriter

.NET

5 svar · 229 visningar · startad av peterbladh

Medlem sedan juni 2000277 inlägg
Frågan#1

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!

Medlem sedan apr. 20012 266 inlägg
#2

hej, skulle man kunna få se lite kod. Och i vilket syfte vill du göra om hela XML dokumentet till en sträng?

Medlem sedan juni 2000277 inlägg
#3

Syftet är att skicka det över en socket.
Man kanske kan använda en NetworkStream?
(återkommer med kod)

Medlem sedan juni 2000277 inlägg
#4

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)

Medlem sedan juni 2000277 inlägg
#5

Hittade felet!

xtw.Flush();
stream.Position = 0;

måste komma innan XmlTextReader initieringen!

Medlem sedan apr. 20012 266 inlägg
#6

ok, bra att du redovisar felet, i förebyggande syfte för andra.

259 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)