2009-03-06 3 views
2

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

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

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

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

ответ

2

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

Отметьте here.

Марк

1

попробовать что-то вроде этого:

var x = elem.Descendants(); 

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

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

public static String InnerXml(this XElement source) 
{ 
    return source.Descendants().Select(x => x.ToString()).Aggregate(String.Concat); 
} 
+0

, что дает XML, включая корень, но я хочу, чтобы InnerXml –

+1

я не думаю, что будет работать, потому что будет возвращать мне перечисление всех потомков, у меня будет добавить каждый элемент, чтобы получить innerXml –

0

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

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