我的功能如下
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,它会抛出error.Pls帮助。
提前谢谢..
答案 0 :(得分:49)
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
答案 1 :(得分:29)
将XmlDocument转换为字符串有一种更简单的方法;使用 OuterXml 属性。 OuterXml property返回xml的字符串版本。
public string GetXMLAsString(XmlDocument myxml)
{
return myxml.OuterXml;
}
答案 2 :(得分:3)
public string GetXMLAsString(XmlDocument myxml)
{
using (var stringWriter = new StringWriter())
{
using (var xmlTextWriter = XmlWriter.Create(stringWriter))
{
myxml.WriteTo(xmlTextWriter);
return stringWriter.ToString();
}
}
}