使用C#将xml转换为字符串

我有如下function

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帮助。 提前致谢..

正如克里斯所说 ,你可以这样做:

 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 

将XmlDocument转换为字符串有一种更简单的方法; 使用OuterXml属性。 OuterXml属性返回xml的字符串版本。

 public string GetXMLAsString(XmlDocument myxml) { return myxml.OuterXml; } 
  public string GetXMLAsString(XmlDocument myxml) { using (var stringWriter = new StringWriter()) { using (var xmlTextWriter = XmlWriter.Create(stringWriter)) { myxml.WriteTo(xmlTextWriter); return stringWriter.ToString(); } } }