2010-08-18 63 views
0

我想查询一个XML文件。在查询 下面返回序列中的第一个元素。想知道如何将序列中的所有元素作为List来获取。 rsltQuest是XElement类型的列表。检索所有元素列表 - LINQ to XML

 
rsltQuest = doc1.Descendants(xmlns + "QUESTION") 
           .Where(t => t.Attribute("ANSWER").Value == "no").ToList();` 


感谢您的建议。 中号

+0

可你还发布XML – 2010-08-20 23:23:32

回答

1

我看到两个问题,但都应该不会导致的结果是一个元素的列表(只要是具有价值的答案属性“不”两个以上的问题元素):

  • 你再打开一个括号。
  • 如果有一个QUESTION元素没有ANSWER属性,你可能会得到一个空指针异常。

那么,你确定数据包含多个ANSYS =“no”的问题吗? 或者这可能是一个命名空间问题?

编辑:也许你应该尝试(string)(t.Attribute("ANSWER")) == "no"

+0

感谢。括号是一个错字。是的,我的XML文件有多个ANSER =“no”的问题。我相信这不是一个命名空间问题。 – BumbleBee 2010-08-18 17:30:56

+1

然后,你将不得不缩小范围:只是'doc1.Descendants(xmlns +“QUESTION”)'的结果是什么? – Frank 2010-08-18 17:42:01

+0

给了我doc1中的所有QUESTION元素 – BumbleBee 2010-08-18 17:48:33