意外的文件结尾:元素未关闭VB xmlreader:Parse?

时间:2012-03-21 13:27:07

标签: xml vb.net

所以,这个例子来自MSDN。 http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.readelementcontentasbase64.aspx  几乎我唯一改变的是创建一个循环,因为我有一个xmlstring并想要分解它并从它创建tif文件(实际上它确实这样做)。

我的问题是:while循环中的readbytes在最后一次通过循环引发异常,说明我有一个“意外的文件结尾;以下元素没有关闭”并列出它们

   Public Shared Sub Base64DecodeImageFile() 

        Dim buffer(999) As Byte
         Dim readBytes As Integer = 0

        Using reader As XmlReader = XmlReader.Create(xmlstring)

                Dim outputFile As New FileStream("C:\artFiles\data\newImage.jpg", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write)
                ' Read to the image element.
                reader.ReadToFollowing("image")
                ' Read the Base64 data.
                Console.WriteLine(vbCr + vbLf + "Reading Base64...")
                Dim bw As New BinaryWriter(outputFile)
                readBytes = reader.ReadElementContentAsBase64(buffer, 0, 50)
                While (readBytes > 0)
                    bw.Write(buffer, 0, readBytes)
                    readBytes = reader.ReadElementContentAsBase64(buffer, 0, 50)
                End While
                outputFile.Close()

        End Using

    End Sub 'Base64DecodeImageFile

所以在readtofollowing(“image”)之后还有标签保持打开状态。我尝试捕获异常无济于事,试图阅读直到eof,无济于事。我真的不需要关闭元素,我只需要继续,因为我使用图像标记中的whats创建文件。

我感谢任何帮助!

编辑:我认为我的xmlstring会有太大的时间来进行解析而不会减慢太多... /解析二进制数据?

1 个答案:

答案 0 :(得分:0)

嘛!我发现了我的问题..我想我会发布答案,或许可以帮助其他人?问题并不在于读者,事实上,它的效果非常好。问题是xmlstring本身。字符串从未创建我需要的结束标记(这将发生在最后一个循环中) 无论如何,谢谢你的帮助!