将XmlDocument转换为string
这是我目前如何将XMLDocument转换为string
StringWriter stringWriter = new StringWriter(); XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter); xmlDoc.WriteTo(xmlTextWriter); return stringWriter.ToString();
这个方法的问题是,如果我有“ ((引号),我有属性)它逃脱它们。
例如:
<Campaign name="ABC"> </Campaign>
以上是预期的XML。 但它返回
<Campaign name=\"ABC\"> </Campaign>
我可以做String.Replace“\”,但是这种方法好吗? 有没有什么副作用? 如果XML本身包含一个“\”,它会工作正常吗?
没有任何报价。 这只是VSdebugging器。 尝试打印到控制台或保存到文件,你会看到。 作为一个方面说明:总是处理一次性物品:
using (var stringWriter = new StringWriter()) using (var xmlTextWriter = XmlWriter.Create(stringWriter)) { xmlDoc.WriteTo(xmlTextWriter); xmlTextWriter.Flush(); return stringWriter.GetStringBuilder().ToString(); }
假设xmlDoc是一个XmlDocument对象xmlDoc.OuterXml有什么问题?
return xmlDoc.OuterXml;
OuterXml属性返回xml的string版本。
如果您使用XmlDocument
Windows.Data.Xml.Dom.XmlDocument
版本(例如,在UWP应用程序中使用),则可以使用yourXmlDocument.GetXml()
以stringforms获取XML。
作为扩展方法:
public static class Extensions { public static string AsString(this XmlDocument xmlDoc) { using (StringWriter sw = new StringWriter()) { using (XmlTextWriter tx = new XmlTextWriter(sw)) { xmlDoc.WriteTo(tx); string strXmlText = sw.ToString(); return strXmlText; } } } }
现在简单地使用:
yourXmlDoc.AsString()
"
在debugging器中显示为” \"
,但string中的数据是正确的,您不需要replace任何东西。 尝试将您的string转储到一个文件,你会注意到该string是正确的。