我已经使用Visual Studio一段时间了,并尝试用C#学习编程。
目前,我的重点是xml结构。
具体来说,我正在尝试开发一个基本上简单的控制台应用程序:
我正在处理的xml文件是一个包含数千个重复行的大文件(其中包含有关某个进程的结果的信息)。为了给出一个想法,这个xml文件的缩短版本如下:
<?xml version="1.0"?>
<OptimizationResultList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Results>
<OptimizationResult>
<Symbol>GARAN60</Symbol>
<ParameterValues>
<double>120</double>
<double>1</double>
<double>120</double>
<double>1</double>
<double>1</double>
</ParameterValues>
<Results>
<double>-94926.02</double>
<double>-3.59</double>
<double>236</double>
<double>32.2</double>
<double>-0.04</double>
</Results>
<AverageProfitAcrossTotalTimeSpan>0</AverageProfitAcrossTotalTimeSpan>
</OptimizationResult>
<OptimizationResult>
<Symbol>GARAN60</Symbol>
<ParameterValues>
<double>120</double>
<double>1</double>
<double>120</double>
<double>2</double>
<double>1</double>
</ParameterValues>
<Results>
<double>-149389.21</double>
<double>-5.76</double>
<double>282</double>
<double>33.69</double>
<double>-0.05</double>
</Results>
<AverageProfitAcrossTotalTimeSpan>0</AverageProfitAcrossTotalTimeSpan>
</OptimizationResult>
<OptimizationResult>
<Symbol>GARAN60</Symbol>
<ParameterValues>
<double>120</double>
<double>1</double>
<double>120</double>
<double>3</double>
<double>1</double>
</ParameterValues>
<Results>
<double>-64926.02</double>
<double>-5.59</double>
<double>636</double>
<double>42.2</double>
<double>0.04</double>
</Results>
<AverageProfitAcrossTotalTimeSpan>0</AverageProfitAcrossTotalTimeSpan>
</OptimizationResult>
</Results>
<Names>
<string>Net Profit</string>
<string>APR %</string>
<string>Trades</string>
<string>Winning %</string>
<string>Avg Profit %</string>
</Names>
<Symbols>
<string>GARAN60</string>
</Symbols>
<StrategyID>8fbc3832-7a0d-497c-bfab-a2c52dd15761</StrategyID>
<Scorecard>MS123 Scorecard</Scorecard>
<OptimizationMethod>Exhaustive</OptimizationMethod>
</OptimizationResultList>
(正如您所注意到的,结果,即此输出xml的主干,在此重复3次。原始文件在大多数情况下包含50K +条目。)
我的问题基本上是这样的:
C#中的代码如何过滤此XML并仅返回结果:
1)结果&gt; OptimizationResult&gt; ParameterValues&gt; ParameterValues的第二个双精度值介于1和3之间;
2)AND,结果&gt; OptimizationResult&gt;结果&gt;结果的第三个双精度值大于500;
我访问了stackoverflow.com中的许多条目,在MSDN页面中检查过,但是,坦率地说,我无法完成执行此过滤的代码。
先谢谢你的帮助,
Aykut Saribiyik
答案 0 :(得分:0)