您好,我想用N多的動態,其中條件,我的解決方案..的LINQ to XML與動態n個有條件的地方
和我的情況我已經獲取所有的XML元素,所有必須包含數組(arrSearchContents)的所有元素,它是通過分割strSearchContent的所有單詞來構建的。
<Mobiles>
<Mobile Id="1">
<MDetails ModelNo="1" Desc="x phone color red"/>
<MDetails ModelNo="2" Desc="x phone color green"/>
<MDetails ModelNo="3" Desc="x phone color blue"/>
<MDetails ModelNo="4" Desc="x phone color black"/>
<MDetails ModelNo="5" Desc="x phone color yellow"/>
<MDetails ModelNo="6" Desc="x phone color pink"/>
<MDetails ModelNo="7" Desc="x phone color gray"/>
<MDetails ModelNo="8" Desc="x phone color silver"/>
<MDetails ModelNo="9" Desc="x phone color orange"/>
</Mobile>
<Mobile Id="2">
<MDetails ModelNo="11" Desc="y phone color red"/>
<MDetails ModelNo="12" Desc="y phone color green"/>
<MDetails ModelNo="13" Desc="y phone color blue"/>
<MDetails ModelNo="14" Desc="y phone color black"/>
<MDetails ModelNo="15" Desc="y phone color yellow"/>
<MDetails ModelNo="16" Desc="y phone color pink"/>
<MDetails ModelNo="17" Desc="y phone color gray"/>
<MDetails ModelNo="18" Desc="y phone color silver"/>
<MDetails ModelNo="19" Desc="y phone color orange"/>
</Mobile>
<Mobile Id="3">
......
<Mobile>
......
</Mobiles>
我想要一個類似波紋管代碼的解決方案。 任何機構可以整頓代碼
public void doSearch(string strSearchContent)
{
string[] arrSearchContents;
arrSearchContents = strSearchContent.Split(' ');
string fileName = HttpContext.Current.Server.MapPath(@"~\XMLFiles/Mobile.xml");
XDocument doc = null;
if (System.IO.File.Exists(fileName))
{
doc = XDocument.Load(fileName);
IEnumerable<XElement> list1 =
from elements in doc.Descendants("MDetails")
where
for(int i=0;i<arrSearchContents.Length;i++)
{
elements.Attribute("Desc").Value.Contains(arrSearchContents[i]) &&
}
select elements;
}
}
選擇列表應包含搜索字符串的所有關鍵詞。
as per example : if strSearchContent = "phone color blue"
then as a result it should return :
<MDetails ModelNo="3" Desc="x phone color blue"/>
<MDetails ModelNo="13" Desc="y phone color blue"/>
非常感謝。它真的幫助我即興編寫我的代碼... – pks
@pks歡迎,順便說一句,如果所有'MDetails'元素具有'Desc'屬性,你可以省略'desc!= null'檢查。還要記住,默認情況下不帶參數的'String.Split()'按字串分割。如果答案爲你工作,你可以接受它:) –
正確答案根據我的要求。 – pks