Другие ответы будут работать, если элемент содержит только другие элементы. Если вы хотите включить текст, вы захотите использовать Nodes () вместо Elements ():
var result = string.Concat(element.Nodes());
Класс XElement не предоставляет метод прямого получить «внутренний XML» элемента.
Однако вы можете объединить дочерние элементы вручную, например, используя
string result = string.Concat(element.Elements());
или
string result = string.Join(Environment.NewLine, element.Elements());
foreach (элемент var в Element.Elements ()) { yield return element.ToString (); }
Возвращает IEnumerable со строками.
Здесь представлены различные варианты с тестированием производительности: Лучший способ получить InnerXml XElement?
Вы можете создать метод расширения для вашего колчана как такового:
/// <summary>
/// Gets the inner XML of an <see cref="XElement"/>. Copied from
/// https://stackoverflow.com/questions/3793/best-way-to-get-innerxml-of-an-xelement
/// </summary>
/// <param name="element">The element.</param>
/// <returns>The inner XML</returns>
public static string GetInnerXml(this XElement element)
{
var reader = element.CreateReader();
reader.MoveToContent();
return reader.ReadInnerXml();
}