从 xml 构造自定义对象图



我有一些xml文件符合我想读取的模式,但在读取过程中,创建了一个不一定与xml匹配的对象图。

我知道,如果我只是想反序列化 xml,有很多快速的方法可以做到这一点。

我目前的尝试是使用XmlReader并在每次看到新元素时触发一个事件。我面临的挑战是如何管理我目前在内存对象图中的位置,以便进一步构建它。

如果我有:

<root>
<group id="1">
<group id="2">
<item />
<item />
</group>
<item />
<group id="3">
<item />
</group>
<group id="4">
<item />
</group
</root>

当我到达 group3 时,我怎么知道它的父级是root而不是group2

理想情况下,我想为每个group创建一个team,为每个item创建一个member。在内存中,而不是另一个序列化流。

似乎我需要某种通用或对象指针来跟踪我在对象图中的当前位置。

有谁知道实现这一点的简单方法,而不必构造一组知道如何以不同方式序列化和反序列化的类?

我想通了。我有一个Stack<object>.每次我看到 NodeType 为StartElement时,我都会创建一个表示 read 元素的类实例并将其推送到堆栈上。当我看到 NodeType 为EndElement时,我会从堆栈中弹出顶部对象。每当我想处理对象图中的当前位置时,我只需Peek()堆栈上的内容。

最新更新