【问题标题】:Getting xml Attribute value in Linq with Lambda使用 Lambda 在 Linq 中获取 xml 属性值
【发布时间】:2013-03-06 05:50:37
【问题描述】:

让我们将以下 xml 结构视为

  <membership defaultProvider="SQLMembershipProvider">
      <providers>
        <add name="SQLMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="SQLMembershipConnString" applicationName=".NET Pet Shop 4.0" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" />
      </providers>
    </membership>

我用下面的代码检查了类型是否包含“System.Web.Security.SqlMembershipProvider”如下

 var prop1 = prop.Descendants(ns + "add").First(p => p.Attribute("type").Value == "System.Web.Security.SqlMembershipProvider");

我的查询是用上面的查询得到connectionStringName的属性值

等待您的回复

【问题讨论】:

  • 您确认ns 包含预期的命名空间前缀(来自您的示例XML,没有)并且您是否尝试访问刚刚将p.Attribute("type") 转换为string?
  • @M.Babcock 我已将 ns 值重试为 var ns = xDoc.Descendants().First(x => x.Name.LocalName == "configuration").Name.Namespace;跨度>
  • @M.Babcock 我已经尝试过了,但出现错误无法将表单字符串转换为 bool 像 tat 你能提供一些结构吗
  • @M.Babcock 我需要的是获取xml上面的connectionStringName表单的值
  • 这是您要找的吗? var connStringName = prop1.Attribute("connectionStringName").Value;

标签: c# .net xml linq lambda


【解决方案1】:

你可以试试这个

var prop1 = xmldoc.Descendants("add").First(p => p.Attribute("type").Value == "System.Web.Security.SqlMembershipProvider").Attribute("connectionStringName").Value;  

希望对您有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-10
    • 2013-02-22
    • 2021-11-23
    • 1970-01-01
    • 2014-01-28
    • 2013-04-02
    • 1970-01-01
    • 2012-11-19
    相关资源
    最近更新 更多