please use this linq query to get result form your xml file.
var query = (from q in XDocument.Load(path).Descendants("book").Descendants("cat")
.Where(q => q.Attribute("id").Value.ToString() == id)
.ToList().Descendants("book")
select new
{
Name = q.Attribute("name").Value ?? string.Empty,
ID = q.Attribute("id").Value ?? string.Empty
}).ToList();
protected void ddl_price_SelectedIndexChanged(object sender, EventArgs e)
{
var id = ddl_price.SelectedItem.Value;
string path = Server.MapPath("XMLFile2.xml");
var query = (from q in XDocument.Load(path).Descendants("book").Descendants("cat")
.Where(q => q.Attribute("id").Value.ToString() == id)
.ToList().Descendants("book")
select new
{
Name = q.Attribute("name").Value ?? string.Empty,
ID = q.Attribute("id").Value ?? string.Empty
}).ToList();
ddl_book.DataTextField = "Name";
ddl_book.DataValueField = "ID";
ddl_book.DataSource = query;
ddl_book.DataBind();
}