2013-12-12 100 views
0

的XmlTextReader長時間的用戶,但指出的是,答案就在這裏每一個相關的問題是後「使用LINQ」我決定冒險嘗試,一切都進展順利,直到這一點。一段時間以來,我一直在抨擊我的頭,希望有人可以幫忙。LINQ to XML - 使用多個屬性過濾器進行選擇?

我在我的文檔中有以下部分;

<action_areas> 
    <time_slice name="0 - 5" id="1"> 
     <action_area id="1"> 
     <aa_team id="1000">9</aa_team> 
     <aa_team id="1001">7</aa_team> 
     </action_area> 
     <action_area id="2"> 
     <aa_team id="1000">5</aa_team> 
     <aa_team id="1001">2</aa_team> 

由於文檔的結構,我需要「action_areas」作爲傳遞給初始選擇的東西,也就是說,

var stuff = from item in xDoc.Descendants("action_areas") 

所以,問題是什麼語句我請遵照這樣我可以根據time_slice name屬性和action_area id屬性和aa_team id屬性過濾器,所以我可以最終得到在包含在aa_team內容元素(在上例中是9,7,5和2)與'select new'聲明?

在此先感謝。

回答

0

試試這個

string timeSliceToSearchFor = "0 - 5"; 
string actionAreaToSearchFor = "1"; 
string aaTeamIdToSearchFor = "1001"; 

// Returns 7 
string value = xDoc .Descendants("action_areas") 
        .Elements("time_slice") 
        .Where(element => element.Attribute("name").Value == timeSliceToSearchFor) 
        .Elements("action_area") 
        .Where(element => element.Attribute("id").Value == actionAreaToSearchFor) 
        .Elements("aa_team") 
        .Where(element => element.Attribute("id").Value == aaTeamIdToSearchFor) 
        .Single().Value; 
+0

完美的作品,非常感謝。 – user3093964