【问题标题】:search on a xdocument using linq使用 linq 在 xdocument 上搜索
【发布时间】:2011-06-27 18:22:18
【问题描述】:

我有一个字符串中的以下 xml:

<XMLClient>
  <ClientData>
   <Control type=1>BtnSave</control>
   <Control type=2>Suppliers.aspx</control>
   ...
   ...
   ...
  </clientData>
</XMLClient>

我想要做的是使用天气返回 true 或 false 记录/节点存在于控件的类型属性为 2 并且文本等于 Suppliers.aspx 的位置。

我想为此使用 linq,但我不知道我想我需要一些 linq 表达式,不太确定......

提前感谢您的任何建议!

【问题讨论】:

  • 对不起,但是.. 你为什么还要编辑你的问题并破坏你的 xml 代码格式?
  • 对不起,这是我的第一个问题,我不知道我做了什么......我想我删除了标签标志,但答案让我的碎玻璃很棒,谢谢

标签: linq lambda linq-to-xml


【解决方案1】:

这样的事情应该可以工作:

XDocument doc = XDocument.Load("test.xml");

bool nodeExists = doc.Descendants("Control")
                     .Where(x => x.Attribute("type") != null && 
                                 x.Attribute("type").Value == "2" && 
                                 x.Value == "Suppliers.aspx")
                     .Any();

【讨论】:

    【解决方案2】:
    XDocument doc = XDocument.Load("xmlFile");
    var result = doc.Root.Descendants("Control")
                         .Any(c => c.Attribute("type") != null && 
                                   c.Attribute("type").Value == "2" && 
                                   c.Value == "Suppliers.aspx");
    

    【讨论】:

    • 是的,它有效,我使用了 XDocument.Parse(XMLString),但其他一切基本相同,谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多