代码之家  ›  专栏  ›  技术社区  ›  Raj More

如何验证XML文档是否已完全下载

  •  0
  • Raj More  · 技术社区  · 14 年前

    在我的SSIS包中,我使用的是另一个进程下载的XML文件。

    在我继续包中的其他部分工作之前,我想确定文件是否已完全下载。

    我手头也有XSD文件。

    如何在SSIS中验证XML文件下载是否正确?

    4 回复  |  直到 14 年前
        1
  •  2
  •   Bruno    14 年前

    要成为有效的XML,文档必须包含一个元素节点(它本身可能包含许多其他节点)。简言之,您需要获得开始标签的结束标签,才能知道您拥有整个文档。根据模式验证此文档是次要的,但可能会有所帮助(或同时完成)。

        2
  •  2
  •   Jonas Wagner    14 年前

    我同意Bruno和Teja的观点:文件应该是有效的,你应该看到结束标签。然而,我认为你可能从错误的角度来处理这个问题。你能考虑一下吗?

    • 检查下载过程的返回值?
    • 下载到一个临时文件(例如Firefox使用file.txt.part)并在下载完成后自动将其移动到正确的路径?

    在我看来,你的要求是下载过程是可靠的,所以你应该努力保证这一点,而不是处理程序中的不可靠性。

        3
  •  1
  •   Teja Kantamneni    14 年前

    如果文件下载正确且完整,它显然是有效的。因此,对照模式进行检查。

        4
  •  1
  •   A_Var    14 年前
    try
    XmlDoc = new XMLDocument()
    Using XmlStream As New StreamReader(filename)
    
           content = XmlStream.ReadToEnd()
           XmlDoc.LoadXml(content)
    
           // write your code here. If it comes here it means file download is complete.
    
    End Using
    
    catch xex as XMLException
    // error handling routine
    
    end try