如何从XElement获取XML片段作为字符串?

时间:2009-03-06 19:50:53

标签: c# xml linq

我有一个XElement,在该元素中我有另一个XML片段。如何检索XML?

如果我尝试以下操作,我只得到值:

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

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

3 个答案:

答案 0 :(得分:2)

Eric White刚刚发布了一篇博文文章,将XElement转换为XmlNode并返回。

查看here

马克

答案 1 :(得分:1)

尝试这样的事情:

var x = elem.Descendants();

这将返回根节点的所有后代 - 如果你想要一个特定的后代,你可以将它的名字作为字符串参数传递给同一个方法。

编辑:如果确实需要它作为字符串,您可以聚合节点。这是一个扩展方法,可以解决这个问题:

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

答案 2 :(得分:0)

我将创建一个扩展方法InnerXml来返回innerXML