【问题标题】:C# Linq XML Find Specified elementC# Linq XML 查找指定元素
【发布时间】:2009-06-29 16:29:17
【问题描述】:

请有人发布一个示例,说明如何使用 linq 检查 xml 文件中是否存在元素?

这里是xml文档:

<Database>
 <SMS>
   <Number>"+447528349828"</Number> 
   <Date>"09/06/24</Date> 
   <Time>13:35:01"</Time> 
   <Message>"Stop"</Message> 
</SMS>
 <SMS>
   <Number>"+447528349828"</Number> 
   <Date>"09/06/24</Date> 
   <Time>13:35:01"</Time> 
   <Message>"Stop"</Message> 
 </SMS>
</Database>

我希望能够指定一个数字并检查它是否存在

【问题讨论】:

    标签: c# xml linq


    【解决方案1】:

    怎么样:

    public static bool HasNumber(XDocument doc, string number)
    {
        return doc.Descendants("Number")
                  .Any(element => element.Value == number);
    }
    

    (需要注意的一点 - 您在 XML 文件中的数字周围有引号,这看起来有点奇怪。您必须有它们吗?)

    【讨论】:

    • 更奇怪的是,日期有一个开始报价,而时间有一个结束报价。
    • 是的 - 我没有超越 Number 元素 :)
    【解决方案2】:

    我认为应该这样做。

    var exists = xml.Descendants("Number")
                    .Any(e => String.Equals(
                       (string)e, 
                       number, 
                       StringComparison.OrdinalIgnoreCase))
    

    【讨论】:

      猜你喜欢
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-25
      相关资源
      最近更新 更多