从XElement中读取文本内容

Col*_*nic 13 .net c# xml linq xelement

在.NET中,如何从XElement中读取文本内容?

例如,来自XElement

XElement.Parse("<tag>Alice &amp; Bob<other>cat</other></tag>")
Run Code Online (Sandbox Code Playgroud)

我想要字符串'Alice&Bob'


我试过element.Value但是返回'Alice&Bobcat':(

cuo*_*gle 11

 XElement t = XElement.Parse("<tag>Alice &amp; Bob<other>cat</other></tag>");
 string s = (t.FirstNode as XText).Value;
Run Code Online (Sandbox Code Playgroud)


jim*_*gee 6

仅仅因为我最近有类似的要求,我提供:

var x = XElement.Parse("<tag>Alice &amp; Bob<other>cat</other></tag>")
var text = string.Concat(x.Nodes().OfType<XText>().Select(t => t.Value));
Run Code Online (Sandbox Code Playgroud)

不会捕获子节点的文本内容,但会连接当前元素中所有未标记的文本节点.

  • 这是最灵活的\通用且因此有用的答案. (2认同)