[英]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.