【发布时间】:2014-04-15 12:44:36
【问题描述】:
我已经搜索了一下,但没有找到任何我认为适合答案的东西,我正在使用 XDocument 加载我的 xml,但我在将其转换为数组时遇到了一些麻烦
<?xml version="1.0" encoding="UTF-8"?>
<document>
<sNone>
<October>3.21</October>
<November>-5.41</November>
<December>-15.81</December>
<January>-21.69</January>
<February>-21.70</February>
<March>-12.60</March>
<April>-6.41</April>
<May>-0.06</May>
<June>5.42</June>
<July>13.32</July>
<August>14.12</August>
<September>7.55</September>
</sNone>
<sLichen>
<October>1.99</October>
...
</sLichen>
</document>
我正在像这样加载我的 XML
XDocument doc = XDocument.Parse();
但我对如何返回一维数组感到困惑,因为我有多个后代。
编辑
我的目标是得到一个这样的数组
{3.21, -5.41, -15.81, -21.69, -21.70, -12.60, -6.41, -0.06, 5.42, 13.32, 14.12, 7.55}
【问题讨论】:
-
嗯,是的。如果您真的需要将其展平为一维数组或列表,那么它的外观几乎取决于您。将其反序列化为自定义对象会更容易
-
什么的一维数组?
sNone中的元素没有相同的名称,它应该映射到一个类吗?sLichen怎么办?您需要提供更多信息以便我们为您提供帮助。 -
但是我一次只需要加载一个后代,这就是为什么我很困惑
-
@SimonBelanger 我不明白你在问什么,我有一个 xml 文件,里面填满了不同名称的后代,所以我想我可以做一些事情
doc.Root.Elements("sNone").Select(...)但我不知道该选择什么... -
您可能可以在“sNone”节点上使用 .Elements() 或 .Descendants() 来实现这一点,然后应用 .Select() 将其映射到数组上?