[英]Searching String to Xml file in C#
<AccessUrl>
<Url>/User/Index</Url>
<Url>/EmailAccounts/Index</Url>
<Url>/Registration/Index</Url>
</AccessUrl>
我有一个xml文件。 我想在其中搜索一个字符串。 我已经为此编写了C#代码。
string Url="/User/Index";// or One of the above value from file. var CheckPermission = (from a in doc.Elements("AccessUrl") where a.Element("Url").Value.Contains(Url) select a).Any();
但它仅适用于文件中的第一个网址值。 但是,如果我更改string Url="/EmailAccounts/Index";
。 即使url值存在于xml文件中也没有显示任何匹配。好吧,我尝试了很多,但没有成功。
这是因为a.Element("Url")
为您提供了具有指定名称的第一个子元素。 您应该使用所有类似的方法遍历所有孩子:
a.Elements("Url").Any(u => u.Value.Contains(Url))
这是因为您在打电话:
where a.Element("Url")
这将返回第一个匹配的元素。
从文档:
获取具有指定System.Xml.Linq.XName的第一个(按文档顺序)子元素
您需要使用以下方法来检查所有元素:
var CheckPermission = (from a in doc.Descendants("Url")
where a.Value.Contains(Url)
select a).Any();
这似乎起作用。
string url="/EmailAccounts/Index";// or One of the above value from file.
var checkPermission = xml.Elements("AccessUrl").Elements("Url").Any(x => x.Value == url);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.