C# 清除XmlTextWriter和StringWriter中的所有内容

C# 清除XmlTextWriter和StringWriter中的所有内容,c#,xmltextwriter,stringwriter,C#,Xmltextwriter,Stringwriter,我想清除XmlTextWriter和StringWriter中的所有内容。Flush()不起作用 XmlDocument doc=新的XmlDocument() StringWriter sw=新建StringWriter() XmlTextWriter xw=新的XmlTextWriter(sw) xw.writeStart元素(“AddPhoneQual”) xw.WriteElementString(“Type”,“B”) xw.WriteElementString(“PhoneNumbe

我想清除XmlTextWriter和StringWriter中的所有内容。Flush()不起作用

XmlDocument doc=新的XmlDocument()
StringWriter sw=新建StringWriter()
XmlTextWriter xw=新的XmlTextWriter(sw)

xw.writeStart元素(“AddPhoneQual”)
xw.WriteElementString(“Type”,“B”)
xw.WriteElementString(“PhoneNumber”,bookingDetails.PassengerList[0]。PhoneNumber)
xw.WriteEndElement()//结束AddPhoneQual

doc.LoadXml(sw.ToString())

现在,我需要清除所有内容,并开始用clear xw编写

xw.Flush()
sw.Flush()


它们不起作用。

你可能认为有一种直观的方法可以做到这一点,但是

A建议如下:

// make a StringWriter, and fill it with junk
StringWriter sw = new StringWriter();
sw.Write("Don't want to see this");

// and HERE IS THE MAGIC
StringBuilder sb = sw.GetStringBuilder();
sb.Remove(0, sb.Length);

// your StringWriter is now empty!
这对我很有效(与您的情况相同——使用转储到
StringWriter
XmlTextWriter


也许有人有一个直观的答案来解释为什么没有类似的东西是内置的。

有人指出(谢谢,@PeteB),您可以使用一个长度初始化StringBuilder,通过将两个StringBuilder行替换为:sw.GetStringBuilder().length=0;或者您可以只执行sw.GetStringBuilder().Clear();