Как получить Xml в виде строки из Xdocument


Я новичок в linq to XML. После того, как вы построили XDocument, как вы получаете OuterXml из него, как вы сделали с XmlDocument.

3 56

3 ответа:

вам нужно только использовать переопределенный метод toString() объекта:

XDocument xmlDoc ...
string xml = xmlDoc.ToString();

это работает для всех X-объекты, как элемент XElement и т. д.

Я не знаю, когда это изменилось, но сегодня (июль 2017) при попытке ответов, я получил

система".XML.XmlDocument"

вместо ToString(), вы можете использовать первоначально предполагалось способ доступа к XmlDocument содержание: запись XML-документа в поток.

XmlDocument xml = ...;
string result;

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

используйте ToString () для преобразования XDocument в строку:

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();