[Homework] XML Processing Problem 7. DOM Parser and XPath: Old Albums - Как да селектнем само необходимата ни информация?
Колеги, реших задачата по следния начин:
public static IDictionary<string, decimal> ReturnOldAlbums(XmlDocument catalogueFile)
{
XmlNode catalogue = catalogueFile.DocumentElement;
int yearToSearch = DateTime.Now.Year - 5;
string path = "/catalogue/album[year <= " + yearToSearch + "]";
var albums = catalogue.SelectNodes(path);
IDictionary<string, decimal> albumsPrices = new Dictionary<string, decimal>();
foreach (XmlNode album in albums)
{
albumsPrices[album["name"].InnerText] = decimal.Parse(album["price"].InnerText);
}
return albumsPrices;
}
Решението обаче не ми харесва. В Albums селектваме цялата информация за албумите и после в цикъла вадим имената и цените им. А ако в един албум има още 10000 неща? Има ли някакъв начин да зададем в пътя да ни върне само имената и цените на тези албуми? И ако да - като какво ще ги върне - някакъв обект, който да съдържа име и цена? Благодаря предварително!