获取xelement属性值

LFu*_*ess 29 c# xml xelement linq-to-xml

我有一个看起来像这样的XElement:

<User ID="11" Name="Juan Diaz" LoginName="DN1\jdiaz" xmlns="http://schemas.microsoft.com/sharepoint/soap/directory/" />
Run Code Online (Sandbox Code Playgroud)

如何使用XML提取LoginName属性的值?我尝试了以下,但q2"枚举没有产生任何结果".

var q2 = from node in el.Descendants("User")
    let loginName = node.Attribute(ns + "LoginName")
    select new { LoginName = (loginName != null) };
foreach (var node in q2)
{
    Console.WriteLine("LoginName={0}", node.LoginName);
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 35

var xml = @"<User ID=""11"" 
                  Name=""Juan Diaz"" 
                  LoginName=""DN1\jdiaz"" 
                  xmlns=""http://schemas.microsoft.com/sharepoint/soap/directory/"" />";

var user = XElement.Parse(xml);
var login = user.Attribute("LoginName").Value; // "DN1\jdiaz"
Run Code Online (Sandbox Code Playgroud)

  • 请注意,XAttribute 可以为空(不是这里是),因此可能需要在获取值之前进行空检查。 (2认同)