Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试通过LINQ读取XML属性_C#_Xml_Linq - Fatal编程技术网

C# 尝试通过LINQ读取XML属性

C# 尝试通过LINQ读取XML属性,c#,xml,linq,C#,Xml,Linq,xDoc变量加载XML内容,但我无法检索任何信息。它返回空值: var xDoc = XDocument.Load(Config.CredentialFileName); //method 1 IEnumerable<XElement> rows = from row in xDoc.Descendants("domain") where (string)row.Attribute("name") == "TEST"

xDoc变量加载XML内容,但我无法检索任何信息。它返回空值:

var xDoc = XDocument.Load(Config.CredentialFileName);

//method 1
IEnumerable<XElement> rows = from row in xDoc.Descendants("domain")
                             where (string)row.Attribute("name") == "TEST"
                             select row;
//method 2
var list = xDoc.Descendants("domain")
    .Select(d => new
    {
        name = d.Attribute("name").Value,
        username = d.Attribute("username").Value,
        password = d.Attribute("password").Value //,
    })
    .Where(a => a.name == "TEST")
    .ToList();
var xDoc=XDocument.Load(Config.CredentialFileName);
//方法1
IEnumerable rows=来自xDoc.substands(“域”)中的行
其中(字符串)行。属性(“名称”)=“测试”
选择行;
//方法2
var list=xDoc.substands(“域”)
.选择(d=>new
{
名称=d.属性(“名称”).值,
用户名=d.属性(“用户名”).值,
password=d.Attribute(“password”).Value/,
})
.其中(a=>a.name==“测试”)
.ToList();
XML文件:

<domains>
  <domain name="TEST" userName="test" password="tSEvmlsmwEkjSxUwrCVf3G6"/>
</domains>

谢谢

见下文

  var xDoc= XElement.Load(Config.CredentialFileName);             

var result =  xDoc.Elements("domain").Where(x => x.Attribute("name").Value.Equals("TEST")).ToList();
见下文

  var xDoc= XElement.Load(Config.CredentialFileName);             

var result =  xDoc.Elements("domain").Where(x => x.Attribute("name").Value.Equals("TEST")).ToList();

第一个方法可以很好地处理您提供的xml。确保您使用完全相同的结构解析xml。还要检查是否至少有一个名为
TEST
的域元素。并确保没有在xml中定义名称空间

第二个方法在
用户名
属性名中有输入错误(小写的
用户名
):


第一个方法可以很好地处理您提供的xml。确保您使用完全相同的结构解析xml。还要检查是否至少有一个名为
TEST
的域元素。并确保没有在xml中定义名称空间

第二个方法在
用户名
属性名中有输入错误(小写的
用户名
):


@最多应返回1项。您确定xml文件正常吗。@它最多应返回1项。您确定xml文件正常吗?在我删除.Elements和used.substants之后,它工作了!谢谢在我移除。元素和使用。后代之后,它工作了!谢谢
var domains = from d in xDoc.Descendants("domain")
              let name = (string)d.Attribute("name")
              where name == "TEST"
              select new {
                  Name = name,
                  Username = (string)d.Attribute("userName"),
                  Password = (string)d.Attribute("password")
              };