aki*_*kif 206 c# string quotes xmldocument escaping
以下是我目前正在将XMLDocument转换为String的方法
StringWriter stringWriter = new StringWriter();
XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter);
xmlDoc.WriteTo(xmlTextWriter);
return stringWriter.ToString();
Run Code Online (Sandbox Code Playgroud)
这种方法的问题是如果我有"((引用)我在属性中)它会逃脱它们.
例如:
<Campaign name="ABC">
</Campaign>
Run Code Online (Sandbox Code Playgroud)
以上是预期的XML.但它回来了
<Campaign name=\"ABC\">
</Campaign>
Run Code Online (Sandbox Code Playgroud)
我可以做String.Replace"\"但是这个方法好吗?有没有什么副作用?如果XML本身包含"\",它会正常工作吗?
Chr*_*ray 630
假设xmlDoc是XmlDocument对象,xmlDoc.OuterXml有什么问题吗?
return xmlDoc.OuterXml;
Run Code Online (Sandbox Code Playgroud)
该OuterXml属性返回XML的字符串版本.
Dar*_*rov 170
没有任何报价.它只是VS调试器.尝试打印到控制台或保存到文件,你会看到.作为旁注:始终处置一次性物品:
using (var stringWriter = new StringWriter())
using (var xmlTextWriter = XmlWriter.Create(stringWriter))
{
xmlDoc.WriteTo(xmlTextWriter);
xmlTextWriter.Flush();
return stringWriter.GetStringBuilder().ToString();
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的Windows.Data.Xml.Dom.XmlDocument是XmlDocument(例如在UWP应用程序中使用)的版本,则可以使用yourXmlDocument.GetXml()将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;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在简单地使用:
yourXmlDoc.AsString()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
235893 次 |
| 最近记录: |