c# -检查从XML文件创建的列表中是否存在值
本文关键字:列表 是否 存在 文件创建 检查 XML | 更新日期: 2023-09-27 18:09:44
我有一个小型的WinForm应用程序,它是一个基本的壁纸刮板。它可以让用户将壁纸"列入黑名单",这样它就再也不会被使用了。当被列入黑名单时,壁纸的URL、标题和ID将被添加到一个XML文件中,格式如下:
<?xml version="1.0" encoding="utf-8"?>
<!--This file stores a list of any wallpapers you blacklist.-->
<Blacklisted>
<Wallpaper>
<URL>http://i.imgur.com/OU3v9H6.jpg</URL>
<Title>Gran Via Madrid Wallpaper [1920x1080]</Title>
<ThreadID>54fsi7</ThreadID>
</Wallpaper>
<Wallpaper>
<URL>http://i.imgur.com/TLXJmGB.jpg</URL>
<Title>The Golden wallpaper HD [1920*1080]</Title>
<ThreadID>55366b</ThreadID>
</Wallpaper>
</Blacklisted>
获取新墙纸时,会快速检查墙纸URL是否在列入黑名单的XML文件中。如果是,那么它没有使用,并找到一个新的壁纸。我检查壁纸是否被列入黑名单的代码实际上并没有导致任何错误,但是检查后的其余代码没有执行,所以我相信我的检查过程有问题,代码只是"卡住"。下面是检查XML文件的代码:
string url = "http://example.url/image.jpg"
XDocument xml = XDocument.Load("Blacklisted.xml");
var list = xml.Root.Elements("URL").Select(element => element.Value).ToList();
if(list.Contains(url))
{
updateStatus("Wallpaper is blacklisted.");
return;
}
看起来您的列表没有被正确填充。尝试从XDocument对象中使用Descendants方法。
var list = xml.Descendants("URL").Select(x=> x.Value).ToList();