使用XmlReader获取包含特定属性的每个节点的XPath?

时间:2016-02-10 21:29:13

标签: c# .net xml xmlreader

我有一个可能看起来像这样的变量XML:

<content>
    <main editable="true">
        <h1>Here is my header</h1>
        <p>Here is my content</p>
    </main>
    <buttons>
        <positive editable="true">I agree!</positive>
        <negative editable="true">No - get me outta here!</negative>
    </button>
</content>

我想为所有具有“editable”属性等于“true”的节点获取XPath。请注意,属性可以在变量节点级别,因此我不能只循环一个级别的所有节点并检查属性。我也想使用XmlReader因为速度快,但如果有更好/更快的方式,那么我也会对此持开放态度。

var xml = IO.File.ReadAllText(contentFilePath);
var readXML = XmlReader.Create(new StringReader(xml));

readXML.ReadToFollowing("content");

while (readXML.Read()) {
    //???
}

1 个答案:

答案 0 :(得分:0)

感谢大家的反馈,我选择了这个代码来解决问题:

value

I picked up the GetXPathToNode function from this thread