C# 清除XmlTextWriter和StringWriter中的所有内容
我想清除XmlTextWriter和StringWriter中的所有内容。Flush()不起作用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
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();