Преобразование детей XElement для строкового представления [копирует]

8
задан Community 23 May 2017 в 11:53
поделиться

4 ответа

Другие ответы будут работать, если элемент содержит только другие элементы. Если вы хотите включить текст, вы захотите использовать Nodes () вместо Elements ():

var result = string.Concat(element.Nodes());
26
ответ дан 5 December 2019 в 05:25
поделиться

Класс XElement не предоставляет метод прямого получить «внутренний XML» элемента.
Однако вы можете объединить дочерние элементы вручную, например, используя

string result = string.Concat(element.Elements());

или

string result = string.Join(Environment.NewLine, element.Elements());
3
ответ дан 5 December 2019 в 05:25
поделиться

foreach (элемент var в Element.Elements ()) { yield return element.ToString (); }

Возвращает IEnumerable со строками.

0
ответ дан 5 December 2019 в 05:25
поделиться

Здесь представлены различные варианты с тестированием производительности: Лучший способ получить 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();
}
2
ответ дан 5 December 2019 в 05:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: