如何从Xdocument获取Xml作为string

我是linq to XML的新手。 在构buildXDocument之后,如何像使用XmlDocument一样获取它的OuterXml。

您只需要使用对象的重写的ToString()方法:

public static string ToOuterXml(XDocument xmlDoc) { return xmlDoc.ToString(); } 

这适用于所有XObject,如XElement等

使用ToString()将XDocument转换为string:

 string result = string.Empty; XElement root = new XElement("xml", new XElement("MsgType", "<![CDATA[" + "text" + "]]>"), new XElement("Content", "<![CDATA[" + "Hi, this is Wilson Wu Testing for you! You can ask any question but no answer can be replied...." + "]]>"), new XElement("FuncFlag", 0) ); result = root.ToString(); 

我不知道这是什么时候改变的,但是今天(2017年7月),当我试着回答的时候,我得到了答案

“System.Xml.XmlDocument”

您可以使用最初预期的方式访问XmlDocument内容,而不是使用ToString() :将xml文档写入stream中。

 XmlDocument xml = ...; string result; using (StringWriter writer = new StringWriter()) { xml.Save(writer); result = writer.ToString(); }