我正在開發自定義搜索控件並根據下面的示例XML設置其配置。因此,如果用戶使用了我的控制在自己的ASPX頁面,並在他的頁面聲明屬性爲:需要LINQ爲此XML結構選擇查詢的想法
<ccl:Search control id='searchtextbox' PageName='Master' />
然後我需要考慮頁面名稱名稱=「大師」,並設置在此提到的所有屬性。同樣,對於頁面名稱= 'SearchResult所'
<configuration>
<Pagename name='Master'>
<Key id='DefaultText'>Search</Key>
<Key id='SearchBoxCss'>btn</Key>
<Key id='ButtonText'>Search</Key>
<Key id='AutocompleteEnabled'>true</Key>
<Key id='EnableFilterDropNames'>false</Key>
<Key id='FilterDropNames'>All Areas;Articles</Key>
</Pagename>
<Pagename name='SearchResults'>
<Key id='DefaultText'>Search</Key>
<Key id='SearchBoxCss'>btn</Key>
<Key id='ButtonText'>Search</Key>
<Key id='AutocompleteEnabled'>false</Key>
<Key id='EnableFilterDropNames'>false</Key>
<Key id='FilterDropNames'>All Areas;Articles;Products</Key>
</Pagename>
</configuration>
你可以請建議必要LINQ代碼來選擇基於主或SearchResult所
我曾嘗試:
var ch = from elem in doc.Descendants("Pagename")
where elem.Attribute(XName.Get("name")).Value == "Master"
select new
{
Children = elem.Descendants("Key").Attributes()
};
這隻返回屬性列表而不是必需的值。
您可以使用XPath這一點。看看這個:http://www.codeproject.com/Articles/9494/Manipulate-XML-data-with-XPath-and-XmlDocument-C – Rumplin
這將是我的最後一個選擇。但目前正在尋找Linq。 –