我有一个像这样的XML文件:
<Root>
This is beginning of list of children.
<Children>
<Child Name="a">A</Child>
<Child Name="b">B</Child>
<Child Name="c">C</Child>
</Children>
This is end of list of children.
</Root>
我正在使用LINQ to XML(XDocument)来读取此文件。我需要的是根元素中的“文本”,“这是孩子列表的开头”。但是当我检查引用Root的XElement的Value属性时,我得到以下内容:
这是孩子名单的开头.ABCT这是孩子名单的结尾。
我做错了什么?
答案 0 :(得分:2)
如果您只想要第一个文本节点(忽略“这是子项列表的结尾”,它仍然是根元素中的文本),您可以使用:
var text = (string) doc.Root.Nodes()
.OfType<XText>()
.First()
.Value;
请注意,这将包含空格,因此您可能需要修剪它。它还假设 至少有一个文本节点。
答案 1 :(得分:2)
var doc = XDocument.Parse(xml);
var ele = doc.Element("Root");
string whatUWant = ele.FirstNode.ToString();
这可能满足您的要求。
BTW,Root.Value表示节点“Root”的整个值,因此您得到了类似的结果。我猜。