我有一个XML文件,其中包含两种类型的信息——位置和工作类型,由
问题是我无法通过where子句筛选
C#
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由第三方提供,因此格式由他们决定。