使用LINQ to XML来读取XML文件
问题描述:
文本我有一个这样的XML文件:以XML(的XDocument)使用LINQ to XML来读取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阅读该文件。我需要的是根元素中的“文本”,“这是儿童列表的开始”。但是当我检查XElement的Value属性时,我得到以下内容:
这是开始的children.ABCThis是儿童列表的结尾。
我在做什么错?
答
如果你只是想第一个文本节点(忽略“这是孩子的列表的末尾”,这仍然是在根元素文本),你可以使用:
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();
这可能会满足您的要求。
BTW,Root.Value表示节点“Root”的整个值,所以你得到了这样的结果。我猜。
+0
是的,你是对的,我没有意识到Root.Value意味着Root的全部价值。 – SoftwareRockstar 2010-11-17 18:09:11
真棒,这工作就像一个魅力! – SoftwareRockstar 2010-11-17 18:08:21