1
我想问一个oldie(但是好的)Reading the list of References from csproj files(尽管我不是那个问题的作者)的后续问题。Linq to XML,只接受具有某个子元素的元素
在我的文件的csproj解析,我需要选择具有链接元素作为孩子的所有编译元素。
我第一次尝试的答案延伸到链接的问题如下:
IEnumerable<string> links = csprojFile
Element(msbuild + "Project")
.Elements(msbuild + "ItemGroup")
.Elements(msbuild + "Compile")
.Where(element => element.HasElements)
.Attributes("Include")
这显然是不够的,因为它选择具有任何类型的孩子的所有元素(因此而选择我想要的一些中,也挑选额外)。所以然后我尝试:
IEnumerable<string> links = csprojFile
.Element(msbuild + "Project")
.Elements(msbuild + "ItemGroup")
.Elements(msbuild + "Compile")
.Where(element => element.HasElements && element.Descendants("Link").Any())
.Attributes("Include")
.Select(element => element.Value);
...它不返回任何东西。我是Linq的初学者,尤其是Linq2XML的初学者,但对我来说,“Where”子句说:“元素有孩子,至少有一个孩子名为Link”。那是错的吗?
非常感谢帮助。
工程就像一个魅力,谢谢。我知道它应该在那里,而且在我看来它是(它显然超过了我的眼睛看到的),有时需要另一个人指出(并笑)显然:) – 2009-11-16 20:01:51