考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:设计制作 > XML > 文章内容
  

OpenXML应用安全(4)文档校验

 [ 2017年5月31日 ] 【

  当Office应用程序打开一个Office文档的时候,首先会进行校验,主要校验的是该文档的有效性和完整性。

  当随便将一个exe文档的后缀改为docx时候,打开该文件肯定会报文件无效。对于一个Open XML文档,如果想去校验它,可以从如下几个方面:

  q 是不是ZIP压缩包

  q 必须的部件是否存在

  q 关系是否完整

  q 部件类型是否匹配

  q 文件大小

  q 宏和OLE对象

  验证的方式也很多,这里给出最简单的方法,使用Open XML SDk中的OpenXmlValidator对象。代码清单14-24是如何验证一个Word文档有效性的方法。

  代码清单14-24 验证文档有效性

  public static void ValidateWordDocument(string filepath)

  {

  try

  {

  OpenXmlValidator validator = new OpenXmlValidator();

  int count = 0;

  foreach (ValidationErrorInfo error in

  validator.Validate(

  WordprocessingDocument.Open(filepath, true)))

  {

  count++;

  Console.WriteLine("Error " + count);

  Console.WriteLine("Description: " + error.Description);

  Console.WriteLine("ErrorType: " + error.ErrorType);

  Console.WriteLine("Node: " + error.Node);

  Console.WriteLine("Path: " + error.Path.XPath);

  Console.WriteLine("Part: " + error.Part.Uri);

  Console.WriteLine("-------------------------------------------");

  }

  Console.ReadKey();

  }

  catch (Exception ex)

  {

  Console.WriteLine(ex.Message);

  }

  }

  在代码清单14-24中看到验证一个文档很简单,只需使用OpenXmlValidator的Validate方法即可。该方法需提供一个WordprocessingDocument对象作为参数,并返回一个ValidationErrorInfo对象的集合。ValidationErrorInfo对象会为我们提供出现错误的基本描述、类型、节点、路径和部件。

本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved