使用 C# 将 XML 转换为字符串
Posted
技术标签:
【中文标题】使用 C# 将 XML 转换为字符串【英文标题】:Converting XML to string using C# 【发布时间】:2011-09-03 21:45:19 【问题描述】:我有如下功能
public string GetXMLAsString(XmlDocument myxml)
XmlDocument doc = new XmlDocument();
doc.LoadXml(myxml);
StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
doc.WriteTo(tx);
string str = sw.ToString();//
return str;
我正在从另一个方法向这个方法传递一个 XML。但是在doc.loadxml()
中,系统需要一个字符串,并且由于我传递的是 XML,所以它会引发错误。
如何解决这个问题?
【问题讨论】:
看我的回答这可能会有所帮助 重复:***.com/questions/2407302/… 【参考方案1】:As Chris suggests,你可以这样:
public string GetXMLAsString(XmlDocument myxml)
return myxml.OuterXml;
或者像这样:
public string GetXMLAsString(XmlDocument myxml)
StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
myxml.WriteTo(tx);
string str = sw.ToString();//
return str;
如果你真的想创建一个新的XmlDocument
然后这样做
XmlDocument newxmlDoc= myxml
【讨论】:
第一个答案完美运行【参考方案2】:有一种更简单的方法可以将您的 XmlDocument 转换为字符串;使用 OuterXml 属性。 OuterXml property 返回 xml 的字符串版本。
public string GetXMLAsString(XmlDocument myxml)
return myxml.OuterXml;
【讨论】:
【参考方案3】: public string GetXMLAsString(XmlDocument myxml)
using (var stringWriter = new StringWriter())
using (var xmlTextWriter = XmlWriter.Create(stringWriter))
myxml.WriteTo(xmlTextWriter);
return stringWriter.ToString();
【讨论】:
+1 为using
,GetStringBuilder()
的绕道不是必须的,stringWriter.ToString()
就可以了以上是关于使用 C# 将 XML 转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章