【发布时间】:2015-06-02 19:20:45
【问题描述】:
我正在处理 LINQ to XML 查询,如果我选择分支(父节点),则只有特定于该分支的子节点应该突出显示。 我正在开发一个 ASP.NET 工具,因为我需要读取一个 XML 文件,它首先读取父节点,根据用户选择,它将读取子节点,现在的问题是如果我选择父节点,它正在读取所有父节点的所有子节点,所以我需要一个查询,它应该在选择分支时读取相应的子节点
<branch name="TigerDrop">
<milestones>
<milestone name="BETA1"></milestone>
<milestone name="BETA2"></milestone>
</milestones>
</branch>
<branch name="EagleDrop">
<milestones>
<milestone name="RFLD"></milestone>
<milestone name="RFVD"></milestone>
</milestones>
</branch>
<branch name="LionDrop">
<milestones>
<milestone name="WIP2"></milestone>
<milestone name="WIP3"></milestone>
</milestones>
</branch>
我试过这样,
public List<string> GetMilestones()
{
string inputFilePath = Server.MapPath(@"~/DropList.xml");
var elements = XDocument.Load(inputFilePath);
var result = (from item in elements.Descendants("milestones").Descendants("milestone").Where(item => (string) item == "branch")
.SelectMany(item => item.Parent.Elements("milestones").Elements("milestone"))).ToList();
return result;
}
【问题讨论】:
-
对于信息,就像如果我选择 LionDrop 分支,里程碑字段应该只突出 WIP2 和 WIP3,而不是其他里程碑
-
那个 XML 无效 -- 它缺少一个 root element。
标签: c# xml linq-to-xml