using System; using System.IO; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Validation; using DocumentFormat.OpenXml.Wordprocessing; class Validator { static void Main(string[] args) { foreach(string filepath in Directory.GetFiles(Directory.GetCurrentDirectory(), "*.docx")) { ValidateWordDocument(filepath); } } public static void ValidateWordDocument(string filepath) { filepath = Path.GetFullPath(filepath); Console.WriteLine("Validating {0} ...", filepath); try { WordprocessingDocument doc = WordprocessingDocument.Open(filepath, false); OpenXmlValidator validator = new OpenXmlValidator(); int count = 0; foreach(ValidationErrorInfo error in validator.Validate(doc)) { 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.WriteLine("count={0}", count); doc.Close(); } catch(Exception e) { Console.WriteLine(e); } } }