2010-12-26 4 views

ответ

74

Вам только нужно использовать метод переопределяется ToString() объекта:

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

Это работает со всеми XObjects, как XElement и т.д.

+17

Для чего нужен этот метод? o.0 – gisek

+1

Только для простой демонстрации есть простая ссылка на свойство XmlDocument.OuterXml. –

+2

Теперь это возвращает 'System.Xml.XmlDocument' –

3

Использование 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(); 
4

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

«System.Xml.XmlDocument»

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

XmlDocument xml = ...; 
string result; 

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

Конечно, это запутанно, но если вы работаете с Linq, вы должны использовать XDocument не XmlDocument. Тогда он должен работать :-). –

Смежные вопросы