使用linq访问xml中的特殊元素

阿曼

如何使用linq获取指定用户名的密码值?例如,如果用户名等于AAAA,则密码为ss。

<?xml version="1.0" encoding="utf-8"?> 
<User>
    <Username>AAAA</Username>
    <Password>ss</Password> 
</User>
<User> 
    <Username>CCC</Username> 
    <Password>zzz</Password> 
</User> 
詹尼斯·帕拉斯科沃波洛斯

首先,您应该将xml结构更改为以下内容:

<?xml version="1.0" encoding="utf-8"?> 
<users>
    <User>
        <Username>AAAA</Username>
        <Password>ss</Password> 
    </User>
    <User> 
        <Username>CCC</Username> 
        <Password>zzz</Password> 
    </User>
</users>

然后,您可以尝试:

var username = "AAAA";
var password = XElement.Parse(xml)
    .Elements("User")
    .Where(x=>(string)x.Element("Username") == username)
    .Select(x=>(string)x.Element("Password"));

我倾向于使用XElement,但有人会说XDocument更好:

var xdoc = XDocument.Parse(xml);
var username = "AAAA";
var password = xdoc.Root.Elements("User")
    .Where(x=>(string)x.Element("Username") == username)
    .Select(x=>(string)x.Element("Password"))
    .FirstOrDefault();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章