提取和更改trx(xml)文档中的数据

时间:2012-02-02 14:28:39

标签: xml vb.net trx

我有一个.trx文件(单元测​​试结果文件),里面只有xml,我想读取文件比较一些标签并根据需要更改它们并再次保存文件。

我发现VB.NET有一些工具可以提供帮助,所以我要做的第一件事就是将文档加载到xml文档中,该文档似乎工作正常,但我无法访问我需要的任何数据。现在我试图访问计数器标签的属性,并在重新运行一些测试后更改它们。

那我该怎么办?

这会加载文件:

Dim Doc As XmlDocument = New XmlDocument
Doc.load("testFile.trx")

尝试访问节点的方法:

Dim attribute As Integer = CInt(xmlTrxMasterDoc.SelectSingleNode("/TestRun/ResultSummary/Counters").Attributes(i).InnerText)

Dim node As XmlNode = xmlTrxMasterDoc.SelectSingleNode("/Counters")
Dim i As Integer = 1
node.Attributes.Item(i).InnerText

XML

<?xml version="1.0" encoding="utf-8"?>
<TestRun someattributes="" >
    <ResultSummary outcome="Failed">
        <Counters total="115" executed="115" passed="110" error="0" failed="5" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
    </ResultSummary>
</TestRun>

2 个答案:

答案 0 :(得分:0)

本文档可能对您有所帮助: http://support.microsoft.com/kb/301225

另请参阅“Linq to xml”,它有很多帮助:http://www.aspfree.com/c/a/VB.NET/LINQ-to-XML-Programming-Using-Visual-BasicNET-2008/

答案 1 :(得分:0)

VB.Net具有XML Literals,这使得使用XML文档非常容易。下面的代码将为您提供total节点的Counters属性:

Dim X = <TestRun someattributes="">
            <ResultSummary outcome="Failed">
                <Counters total="115" executed="115" passed="110" error="0" failed="5" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0"/>
            </ResultSummary>
        </TestRun>

Console.WriteLine(X.<ResultSummary>.<Counters>.@total)

否则,这应该是您正在寻找的:

Dim Doc As XmlDocument = New XmlDocument()
Doc.Load(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "testFile.trx"))
Dim attribute = Doc.SelectSingleNode("//TestRun/ResultSummary/Counters").Attributes("total").Value
Console.WriteLine(attribute)