2011-07-31 4 views
0

私は選択された状態(コードは以下に示されています)に従ってすべての都市をドロップダウンリストに入れたいのですが、すべての都市の代わりに最初の都市を取得しています。 city.pleaseを取得する方法は以下のコードを参照してください。都市に対応する選択状態を設定する方法

<?xml version="1.0" encoding="utf-8" ?> 
<states> 
    <state> 
    <stateid>1</stateid> 
    <city>umr</city> 
    <city>kat</city> 
    <city>jpl</city> 
    <city>bpl</city> 
    </state> 
    <state> 
    <stateid>2</stateid> 
    <city>mumbai</city> 
    <city>dadar</city> 
    <city>ghat</city> 
    <city>kanjur</city> 
    </state> 
</states> 

ここで1はstateidであり、州にはumr.kat、jpl bplのような都市があります。

public static List<statecs> GetStateFromXML(string getstateid) 
{ 
    XDocument xmlDoc = XDocument.Load(
      HttpContext.Current.Server.MapPath("stateXML.xml")); 
    var states = from state in xmlDoc.Descendants("state") 
       where state.Element("stateid").Value == getstateid 
       select new statecs { City = state.Element("city").Value, }; 
    return states.ToList(); 
} 
+0

はなぜ 'state'の属性として' stateid'を入れませんか? –

答えて

0

これはうまくいくかもしれないが...テストもコンパイルされていない

// fetch states first 
    var states = from state in xmlDoc.Descendants("state") 
     where state.Element("stateid").Value == getstateid 
     select state; 

    // for found states select the city. 
    var cities = from city in states.Descendants("city") 
        select new statecs { City = city.Value, };  

    return cities.ToList(); 
+0

thanksssssssssそのworkingggggg – jenifer

0

あなたがSelectMany使用することができます。

return xmlDoc.Descendants("state") 
    .Where(state => state.Element("stateid").Value == getstateid) 
    .SelectMany(state => state.Elements("city").Select(city => new statecs { City = city.Value })) 
    .ToList(); 
関連する問題