给定一个XML流,如何知道它是二进制XML还是非二进制XML流?

时间:2010-01-07 11:23:51

标签: .net xml

我有一个包含一些XML的流。 XML可以使用二进制XML编写器(例如从XmlDictionaryWriter.CreateBinaryWriter获得)或非二进制XML编写器(如XmlWriter.Create中的编码)进行编码。

我想知道使用哪个读者 - 来自XmlDictionaryReader.CreateBinaryReader的那个或来自XmlReader.Create的读者。当然,我可以假设XML是非二进制的,然后尝试回退到二进制。这就是我今天所做的。但我不喜欢这种方法。我想知道是否有一个API,它可以引导我首先选择读者。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以检查数据(例如前100个字符)并查看是否存在任何无效XML characters,如果您没有找到,则使用当前解决方案 - 首先尝试XmlReader.Create然后回到XmlDictionaryReader.CreateBinaryReader