2014-01-06 43 views
0

我休耕的教程和它的作品great.But我想知道我怎樣才能做到這一點使用LINQ怎樣轉換XML代碼中的LINQ

我想這樣

XDocument doc = XDocument.Load("http://clients1.google.com/complete/search?hl=" + lang+ "&output=toolbar&q=" + word+ ""); 

var suggestions = doc.Descandands("suggestions").Where(.... 

但我的東西很困惑,有點bit.This是我的XML代碼

string lang = drpLang.SelectedValue; 
    //TextBoxa girilen değer alınır. 
    string word = txtSearch.Text; 
    //Google Suggest Değelerini içeren Labelı ilk başta temizliyoruz. 
    lblRetVal.Text = ""; 
    /*Burada Google Suggest değerlerini içeren servisin kaynak kodunu alıyoruz. 
    * Xml olarak çekerken eşleşmeyen karakterler olduğu için böyle bir yol izliyoruz. 
    * */ 
    WebRequest req = HttpWebRequest.Create("http://clients1.google.com/complete/search?hl=" + dil + "&output=toolbar&q=" + kelime + ""); 
    WebResponse response = req.GetResponse(); 
    StreamReader retValues = new StreamReader(response.GetResponseStream()); 
    string html = retValues.ReadToEnd(); 

    //XmlDocument xdoc = new XmlDocument(); 
    ////Tüm sayfayı çektiğimiz için sayfanın kaynak kodunu xml olarak yüklenmesi sağlıyoruz. 
    //xdoc.LoadXml(html); 
    //XmlNodeList nodeList = xdoc.SelectNodes("toplevel/CompleteSuggestion/suggestion"); 
    ////Burada alınan nodeları döngüye alıyoruz. 
    //foreach (XmlNode item in nodeList) 
    //{ 
    // //Alınan nodeların data Attributes değerini tek tek labela yazdırıyoruz. 
    // lblRetVal.Text += item.Attributes["data"].InnerText + "<br>"; 
    //} 

回答

0

我不知道如果我理解正確的,但如果你會使用LINQ查詢XML數據,我建議你創建一個類包含了所有的XML元素在sele中請參考下面的示例代碼。

首先,我創建類包含我想查詢

public class CompleteSuggestion 
{ 
    public string suggestionData { get; set;} 
} 

所有的XML元素和本我的LINQ to XML

public List<CompleteSuggestion> GetSuggestions(string lang, string word) 
{ 
    XDocument doc = XDocument.Load("http://clients1.google.com/complete/search?hl=" + lang+ "&output=toolbar&q=" + word+ ""); 
    List<CompleteSuggestion> suggestions = (from s in doc.Descendants("suggestion") 
              select new CompleteSuggestion 
              { 
               suggestionData = s.Attribute("data").Value 
              }).ToList(); 
    return suggestions; 
} 

最後,請撥打您想要的方法,並用它

List<CompleteSuggestion> suggestions = GetSuggestions("en", "angle"); 
foreach (CompleteSuggestion s in suggestions) 
{ 
    Response.Write(s.suggestionData); 
}