繁体   English   中英

使用LINQ to XML从XML文件读取文本

[英]Using LINQ to XML to read text from XML file

我有一个像这样的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)读取此文件。 我需要的是根元素“这是孩子列表的开始”中的“文本”。 但是,当我检查XElement的Root的Value属性时,得到以下信息:

这是孩子列表的开头。ABC这是孩子列表的结尾。

我究竟做错了什么?

如果只需要第一个文本节点(忽略“这是孩子列表的末尾”,而这仍是根元素中的文本),则可以使用:

var text = (string) doc.Root.Nodes()
                            .OfType<XText>()
                            .First()
                            .Value;

请注意,这将包含空格,因此您可能需要修剪它。 它也假设至少一个文本节点。

var doc = XDocument.Parse(xml);
var ele = doc.Element("Root");
string whatUWant = ele.FirstNode.ToString();

这可能满足您的要求。

顺便说一句,Root.Value表示节点“ Root”的整个值,因此您得到了这样的结果。 我猜。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM