gpt4 book ai didi

C# Xml 反序列化 - 保留子顺序

转载 作者:行者123 更新时间:2023-11-30 17:19:02 24 4
gpt4 key购买 nike

我有一个看起来像这样的 Xml(简化示例):

<childrenNode>
<myClass1>
<someValues />
</myClass1>
<myClass2>
<someOtherValues />
</myClass2>
<myClass1>
<someValues />
</myClass1>
<myClass2>
<someOtherValues />
</myClass2>
<myClass1>
<someValues />
</myClass1>
</childrenNode>

在解析它时,我使用了一个看起来像这样的类:

public class childrenNode
{
public myClass1[] myClass1 { get; set; }
public myClass2[] myClass2 { get; set; }
}

问题是我松散了顺序。即我需要知道第二个 myClass1 是数组的第三项。理想情况下,我会将 Xml 序列化为这样的内容以保留顺序:

public class childrenNode
{
public object[] child { get; set; }
}

Xml 是由第三方应用程序输出的,因此我无法更改其布局。

对我有哪些替代方案有什么建议吗? Xml 实际上非常庞大,因此使用 XmlReader 解析它需要大量工作。

最佳答案

您可以使用 XmlElementAttribute 映射节点 msdn

public class childrenNode
{
[XmlElement("myClass1", typeof(myClass1))]
[XmlElement("myClass2", typeof(myClass2))]
public BaseNode[] nodes { get; set; }
}

public class BaseNode
{

}

public class myClass1: BaseNode
{
}

public class myClass2: BaseNode
{
}

关于C# Xml 反序列化 - 保留子顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5243538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com