Xml节点搜索

时间:2015-04-30 07:55:52

标签: c# xml

我有一个xml架构。这个模式不确定节点。我正在搜索节点。我想要类似的东西,例如,搜索结果位于节点的底部。我希望看到祖先的顶峰。

var query = from c in XMLDoc.Descendants("Nodes")
                        where c.Attribute("ExamleField") != null && (string)c.Attribute("ExamleField").Value == "321"
                        select c;

1 个答案:

答案 0 :(得分:0)

看起来您正在使用XDocumentLINQ to XML

在这种情况下,您可以找到XObject.Parent的任何节点的父元素。要遍历节点的所有父节点,请使用XNode.Ancestors()。如果节点是元素,则可以使用XElement.AncestorsAndSelf

因此,如果您想要选择包含查询元素的所有"GroupingNode"元素,您可以执行以下操作:

        var query = from c in XMLDoc.Descendants("Nodes")
                    where c.Attribute("ExamleField") != null && (string)c.Attribute("ExamleField").Value == "321"
                    let a = c.Ancestors("GroupingNode").FirstOrDefault()
                    where a != null
                    select a;