C# 获取xelement属性值

C# 获取xelement属性值,c#,xml,linq-to-xml,xelement,C#,Xml,Linq To Xml,Xelement,我有一个元素看起来像这样: <User ID="11" Name="Juan Diaz" LoginName="DN1\jdiaz" xmlns="http://schemas.microsoft.com/sharepoint/soap/directory/" /> 我最终使用字符串操作来获取值,因此我将发布该代码,但如果有XML方法,我仍然希望看到它 string strEl = el.ToString(); string[] words = strEl.Split(' ');

我有一个元素看起来像这样:

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

我最终使用字符串操作来获取值,因此我将发布该代码,但如果有XML方法,我仍然希望看到它

string strEl = el.ToString();
string[] words = strEl.Split(' ');
foreach (string word in words)
{
    if (word.StartsWith("LoginName"))
    {
        strEl = word;
        int first = strEl.IndexOf("\"");
        int last = strEl.LastIndexOf("\"");
        string str2 = strEl.Substring(first + 1, last - first - 1); 
        //str2 = "dn1\jdiaz"
    }
}
var xml=@”;
var user=XElement.Parse(xml);
var login=user.Attribute(“LoginName”).Value;//“DN1\jdiaz”
最后一行代码,它设置了
字符串登录名
,格式如下所示

var variable = condition ? A : B;

基本上是说,如果条件为
true
,则变量等于A,否则变量等于B。

来自XAttribute的文档。值:

如果获取的是值,而属性可能不存在,则更方便的做法是使用显式转换运算符,并将属性指定给可为null的类型,例如
string
Int32
nullable
。如果属性不存在,则可为null的类型设置为null


不要对XML进行字符串操作。XML通常看起来很简单,但事实并非如此。因此,请使用Microsoft提供的工具对其进行分析。参考文档中的第二个示例演示了转换运算符的用法。最后一个字符串应为:
string login=user.Attributes?[“LoginName”]??“未知登录”请注意,XAttribute可以为null(此处不是yes),因此可能需要在获取值之前进行null检查。
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"
XmlDocument doc = new XmlDocument();
doc.Load("myFile.xml"); //load your xml file
XmlNode user = doc.getElementByTagName("User"); //find node by tag name  
string login = user.Attributes["LoginName"] != null ? user.Attributes["LoginName"].Value : "unknown login";
var variable = condition ? A : B;