解析原始 NCover XML 文件以获取覆盖数据
我正在尝试使用 C# 从 NCover 生成的 XML 文件中提取覆盖率数据。 XML 文件看起来像这样:
<namespace n="namespace" t="11" fp="11" u="0" c="100">
<class n="foo" t="11" fp="11" u="0" c="100">
<method n="foo1" t="1" fp="1" u="0" c="100" l="16" />
<method n="foo2" t="1" fp="1" u="0" c="100" l="13" />
</class>
现在,当值 > 时,我正在使用模式匹配。 0 for c 然后向后查找方法名,但是确实很麻烦。 有一个更好的方法吗?
I'm trying to extract the coverage data from XML file generated by NCover using C#. The XML file looks something like this:
<namespace n="namespace" t="11" fp="11" u="0" c="100">
<class n="foo" t="11" fp="11" u="0" c="100">
<method n="foo1" t="1" fp="1" u="0" c="100" l="16" />
<method n="foo2" t="1" fp="1" u="0" c="100" l="13" />
</class>
Right now I'm using pattern matching for when there's a value > 0 for c and then looking behind to retrieve the method name, but its really cumbersome. Is there a better way to do this?
您的意思是您没有使用标准 XML API(SAX、DOM 或其他)来处理该文件吗? 这很勇敢……嗯,确实很危险。
使用 XPath,找到 c>0 的元素将非常简单。 这是一个(未经测试的)表达式,应该可以解决这个问题:
Do you mean that you're not using a standard XML API (SAX, DOM, or other) to process the file? That's brave... well, dangerous, really.
Using XPath, it would be pretty simple to find the elements where c>0. Here's an (untested) expression that should do the trick: