簡體   English   中英

在C#中將字符串搜索到Xml文件

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM