У меня есть XML-файл с 2 типами информации - местоположения и типы заданий, которые определяются значением SLvl
. Я хочу связать значение SearchTxt
для них с двумя раскрывающимися списками (один для местоположений, один для типов заданий), которые будут использоваться в качестве фильтров на моей странице.
Проблема в том, что я не могу получить предложение where для фильтрации по значению SLvl
. С предложением where результаты не возвращаются. Если я удалю его, запрос вернет все текстовые значения.
C #
using System.Xml.Linq;
using System.Linq;
.....
// Loading from file
XDocument loaded = XDocument.Load(@"http://[LINKREMOVED]/vacancies.aspx");
// Query the data
var q = (from c in loaded.Descendants("items")
where c.Element("SLvl").ToString() == "0"
select c.Element("SearchTxt").ToString()).Distinct();
// Populate drop down
foreach(string name in q)
{
ddlLocation.Items.Add(new ListItem(name, name));
}
XML:
<VacancyMatch>
<items>
<SearchID>60</SearchID>
<SearchTxt>Scotland</SearchTxt>
<ParentID>0</ParentID>
<SearchCatID>1</SearchCatID>
<SLvl>1</SLvl>
<SubCat>1</SubCat>
</items>
<items>
<SearchID>92</SearchID>
<SearchTxt>Accounting</SearchTxt>
<ParentID>60</ParentID>
<SearchCatID>2</SearchCatID>
<SLvl>2</SLvl>
<SubCat>2</SubCat>
</items>
... More items here
</VacancyMatch>
Полагаю, проблема в том, что данные находятся на одном уровне? Это мой первый раз, когда я использую LINQ to XML, поэтому любая помощь очень ценится.
Замечания:
XML предоставляется третьей стороной, поэтому форматирование зависит от них.