【发布时间】:2012-12-22 12:09:33
【问题描述】:
我已经从Stream 对象中创建了一个XMLReader 对象,我之前由XMLWriter 对象写入了该对象。
我知道XMLReader 对象只是向前的,因此我希望能够保存当前的阅读位置,这样我就可以从我停止阅读的地方继续阅读。
有可能吗?
我知道这可能很棘手,因为XMLreader 读取了大块内存块,所以恢复当前 XML 元素读取点可能会是个问题。
请仅在您确定的情况下提供建议,这将根据您在此问题上的具体经验而起作用。
注意:
1. 我想简单地为那个场景保存整个 XMLReader 对象引用。
2. XMLReader Position = 当前指向读取元素的指针,而不是 Stream.Position,因为它是别的东西。
【问题讨论】:
-
在使用
XMLReader之前,您是否尝试过设置Stream.Position属性?这应该行得通。 -
是的,我做到了,Stream 有一种奇怪的位置,显然无法翻译回 Xml 中的特定阅读点元素
-
对,但是如果你得到
Stream.Position,然后在你把它给一个新的XMLReader之前把它设置回原来的位置,它应该从同一个地方拾取。 -
是的,看起来你能做的最好的事情就是从
XmlTextReader获取行号,然后,当你下次打开流时,循环遍历流中的每一行直到您到达该行号。它不会很漂亮,但似乎这是最好的选择。
标签: c# .net xml xml-serialization xmlreader