有一个像这样的XML文件:
<Datasets>
<package id="AD">
<iff>LRC_AD_AMSADTEXPDR</iff>
</package>
<package id="AL">
<iff>LRC_AL_CLINICALTCODE</iff>
<iff>LRC_AL_PATALGHISTRY</iff>
<iff>LRC_AL_PATALGYCODE</iff>
<iff>LRC_AL_PATALLERGY</iff>
<iff>LRC_AL_PATALRGYCHEKD</iff>
</package>
<package id="AT">
<iff>LRC_AT_PATALERT</iff>
<iff>LRC_AT_PATALRTCARE</iff>
<iff>LRC_AT_PATALRTCODE</iff>
<iff>LRC_AT_PATALRTDIST</iff>
<iff>LRC_AT_PATALRTHIST</iff>
<iff>LRC_AT_PATALRTSTAT</iff>
</package>
<package id="CDC">
<iff>LRC_CDC_IFMFMCOMMENT</iff>
<iff>LRC_CDC_IFMFORM</iff>
<iff>LRC_CDC_IFMFRMCNTXT</iff>
<iff>LRC_CDC_IFMFRMDATA</iff>
<iff>LRC_CDC_IFMFRMDISDET</iff>
<iff>LRC_CDC_IFMFRMHIMREF</iff>
<iff>LRC_CDC_IFMFRMKEYWRD</iff>
<iff>LRC_CDC_IFMFRMOBSRER</iff>
<iff>LRC_CDC_IFMFRMPLCY</iff>
<iff>LRC_CDC_IFMFRMRCPNT</iff>
<iff>LRC_CDC_IFMFRMREF</iff>
<iff>LRC_CDC_IFMFRMSTAHST</iff>
</package>
</Datasets>我使用.NET 3.5创建了一个应用程序,它将有一个组合框和一个复选列表框控件。组合框将列出所有软件包(如AD、AL、AT等)在选择哪些相应的iff元素应该被绑定到should _ which框时。
我成功地用以下代码绑定了combobox:
var pkgs = from s in xmlDoc.Descendants("package")
where s.HasAttributes && s.Attribute("id") != null &&
!String.IsNullOrEmpty(s.Attribute("id").Value)
select s.Attribute("id").Value;
List<string> lst = pkgs.ToList();
comboBox1.DataSource = lst;当用户从下拉框中选择包时,在combobox的selectedIndexChange事件中,我想检索该包的相应子元素并将其绑定到选中的列表框。
但是,我无法使用LINQ选择所选包的子节点(iffs)。
任何帮助都是非常感谢的!
谢谢
发布于 2011-11-08 17:32:36
检索"iffs“的Linq语法可能如下所示:
var package = xmlDoc.Descendants("package").SingleOrDefault(s => s.HasAttributes && s.Attribute("id") != null && s.Attribute("id").Value == myPackage); // myPackage is the selected package
if (package == null)
return null;
return package.Descendants("iff").Select(x => x.Value);这是你要找的吗?
https://stackoverflow.com/questions/8047877
复制相似问题