【发布时间】:2011-08-24 07:13:29
【问题描述】:
这是一个 XML 示例:
<ProblemFactory Name="Diagnostic exam" Count="1">
<Condition ObjectiveID="1" Type="1" CountRanges="2" Range1Decimals="0" Range1Min="3" Range1Max="10" Range2Decimals="0" Range2Min="6" Range2Max="10" />
<Condition ObjectiveID="1" Type="1" CountRanges="2" Range1Decimals="0" Range1Min="6" Range1Max="10" Range2Decimals="0" Range2Min="6" Range2Max="10" />
</ProblemFactory>
我正在尝试执行以下操作:
XDocument xdoc = XDocument.Load("ProblemFactory.xml");
var problems = from pf in xdoc.Descendants("Condition")
select new
{
// ObjectiveID property
// Type property
// Ranges collection property
};
创建范围集合是我的问题。如何构建我的 XML 文件或查询来创建集合?该集合将包含:RangeDecimals、RangeMin、RangeMax。
我不确定,但我可以想象要解决这个问题,我必须重新构造我的 Condition 元组:
<Condition ObjectiveID="1" Type="1" >
<RangesCollection>
<Range RangeDecimals="0" RangeMin="3" RangeMax="10" />
<Range RangeDecimals="0" RangeMin="6" RangeMax="10" />
</RangesCollection>
</Condition>
【问题讨论】:
-
虽然可以按照您的要求进行操作(Jimmy 的回答),但我强烈建议您按照您提到的方式更改 XML 的结构。
-
你绝对应该重新调整你的条件以使用你最终拥有的东西。特别是因为范围的计数可能会有所不同。虽然你真的根本不需要
CountRanges。 -
哦,那是真的。我可以从收藏中得到它
标签: c# xml linq-to-xml