【问题标题】:Retrieve All Elements as a list - LINQ to XML以列表形式检索所有元素 - LINQ to XML
【发布时间】:2010-08-19 04:12:05
【问题描述】:

我正在尝试查询一个 XML 文件。下面的查询 返回序列中的第一个元素。想知道如何将序列中的所有元素作为列表获取。 rsltQuest 的类型是 XElement 列表。

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

感谢您的建议。 M

【问题讨论】:

    标签: linq-to-xml


    【解决方案1】:

    我看到了两个问题,但都不应导致结果是一个元素列表(假设有多个 QUESTION 元素的 ANSWER 属性值为“no”):

    • 关闭的括号比打开的多一个括号。
    • 如果存在没有 ANSWER 属性的 QUESTION 元素,您可能会收到空指针异常。

    那么,您确定数据包含多个 ANSWER="no" 的 QUESTION 吗? 或者这可能是命名空间问题?

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

    【讨论】:

    • 谢谢。括号是错别字。是的,我的 XML 文件有多个 ANSER =“否”的问题。我确定这不是命名空间问题。
    • 那么你必须缩小范围:doc1.Descendants(xmlns + "QUESTION") 的结果是什么?
    • 为我提供了 doc1 中的所有 QUESTION 元素
    • 所以问题必须在 Where() 或 ToList() 中(或者您对结果的检查。我只是会系统地尝试这些以缩小失败区域:如果您添加 Where ,结果是否还如预期?如果是的话,如果添加ToList()?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多