Как я могу получить фрагмент XML в виде строки из XElement? - PullRequest
2 голосов
/ 06 марта 2009

У меня есть XElement, и внутри этого элемента у меня есть еще один фрагмент XML. Как мне получить XML?

Если я попробую следующее, я получу только значение:

string str = "<Root><Node1>value1</Node1><Node2></Node2></Root>";

XElement elem = XElement.Parse(str);
string innerXml = elem.value;

Ответы [ 3 ]

2 голосов
/ 14 марта 2009

Эрик Уайт только что опубликовал статью в блоге, чтобы сделать именно это - конвертировать XElement в XmlNode и обратно.

Проверьте это здесь .

Марк

1 голос
/ 06 марта 2009

Попробуйте что-то вроде этого:

var x = elem.Descendants();

Это вернет вам всех потомков корневого узла - если вам нужен конкретный, вы можете передать его имя как строковый параметр этому же методу.

Редактировать: Если вам действительно нужна эта строка, вы можете объединить узлы. Вот метод расширения, который сделает свое дело:

public static String InnerXml(this XElement source)
{
    return source.Descendants().Select(x => x.ToString()).Aggregate(String.Concat);
}
0 голосов
/ 06 марта 2009

Я просто собираюсь создать метод расширения InnerXml, чтобы вернуть мне innerXML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...