我需要掌握XDocument中的所有元素,无论名称如何,其值都符合某些标准。
“匹配标准”部分不是问题 - 问题是如何获取XDocument中所有XElements的集合,换句话说,将其展平为XElements的“列表”,而不指定元素名。
myXDocument.Descendants().Where(el => IsAMatch(el.Value))
似乎只返回第一级,但有问题的元素嵌套了各种级别,并且有各种各样的名称,我无法控制(说实话,也没兴趣。我只是想找到它们)。
我可以递归地执行它,走树并将每个匹配的元素添加到列表中,但它看起来不是很优雅(并且可能很慢)。
我怎样才能更优雅地做到这一点?
TIA
答案 0 :(得分:0)
我可以看到现在发生的事情 - Descendants()确实返回了所有元素,但是嵌套元素在它们的父元素中返回并且在它们自己的权利中返回,这是我没有发现的。 IsAMatch(...)需要将自身约束到元素的立即值,忽略嵌套(子)元素。