为字符串变量赋值

时间:2014-05-08 20:36:10

标签: c# xml linq

我试图解析xml文件中的元素值,然后将该单个值分配给变量。我知道我可以这样做:

XDocument xdoc = XDocument.Load("filename");
string someName;  
var name = from n in xdoc.Descendants("name")
           select (string)n;

foreach(var n in name )
{
   someName = n;
}

我的问题是我怎么能做同样的事情,但没有foreach循环?

3 个答案:

答案 0 :(得分:2)

string someName = (string)xdoc.Descendants("name").First();

答案 1 :(得分:2)

如果您的xml文件中有单个name元素,那么使用@abatishchev解决方案(如果元素可能丢失,则可能使用FirstOrDefault而不是First)或者您可以使用XPath查询:

string someName = (string)xdoc.XPathSelectElement("//name");

答案 2 :(得分:1)

如果你知道name中只有一个元素,你就可以这样做:

someName = name.Single();