C# 如何在创建有效的ServerDocument实例时防止XmlException?
我有以下代码:C# 如何在创建有效的ServerDocument实例时防止XmlException?,c#,xml,ms-word,vsto,wordprocessingml,C#,Xml,Ms Word,Vsto,Wordprocessingml,我有以下代码: var sd = new ServerDocument(documentPath); 应该注意的是,documentPath是一个有效的路径,并且文档使用vsto应用程序。它在word中很好地打开,我可以毫无问题地使用我的vsto扩展 上述代码行引发异常: 缺少根元素 在System.Xml.XmlTextReaderImpl.Throw(异常e)处 System.Xml.XmlTextReaderImpl.ParseDocumentContent()位于 System.Xml
var sd = new ServerDocument(documentPath);
应该注意的是,documentPath是一个有效的路径,并且文档使用vsto应用程序。它在word中很好地打开,我可以毫无问题地使用我的vsto扩展
上述代码行引发异常:
缺少根元素
在System.Xml.XmlTextReaderImpl.Throw(异常e)处
System.Xml.XmlTextReaderImpl.ParseDocumentContent()位于
System.Xml.XmlTextReaderImpl.Read()位于
System.Xml.xmloader.Load(XmlDocument文档,XmlReader阅读器,布尔值
在System.Xml.XmlDocument.Load(XmlReader)中保留空白
在System.Xml.XmlDocument.LoadXml(字符串Xml)处
Microsoft.Office.Tools.OfficeOpenXmlAppInfoDocument.ServerAppInfo.TryGetManifestInfo(PackagePart
part、ManifestType和type、String和xml)位于
Microsoft.Office.Tools.OfficeOpenXmlAppInfoDocument.ServerAppInfo.EnsureMaps()
在
Microsoft.Office.Tools.OfficeOpenXmlAppInfoDocument.ServerAppInfo..ctor(包
包装)在
Microsoft.Office.Tools.OfficeOpenXmlAppInfoDocument.Info()在 Microsoft.Office.Tools.OfficeOpenXmlAppInfoDocument.Microsoft.VisualStudio.Tools.Applications.Runtime.IAppInfo.ReadItem(字符串 类型,字符串id)位于 Microsoft.VisualStudio.Tools.Applications.AppInfo.GetDeploymentManifestUrl(IAppInfo appInfo)在 Microsoft.VisualStudio.Tools.Applications.ServerDocument.Initialize(字节[]) 字节、字符串文档PathorFileType、文件访问权限、布尔值 Throwon(上一版本)在 Microsoft.VisualStudio.Tools.Applications.ServerDocument.Initialize(字节[]) 字节、字符串文档PathorFileType、文件访问)位于 Microsoft.VisualStudio.Tools.Applications.ServerDocument..ctor(字符串 ConsoleApplication12.Program.Main(字符串[]args)上的documentPath)
如何防止此问题?您的文档是否有根元素 您得到的错误是: “缺少根元素。” 表示您的文档缺少根元素。那么什么是“根元素” 说: 每个XML文档只有一个根元素。它包含所有其他元素,因此是所有其他元素的唯一父元素。根元素也称为父元素 下面是一个例子:
<animals>
<cat />
<dog />
<armadillo />
</animals>
animals
是本例中的根元素
简而言之-检查文档,确保它有一个且只有一个根元素。docx不是一个可能缺少根元素的xml文件。它是一个包含多个xml的zip文件。docx本身是有效的。我认为修改有效的docx是危险的。我想修复一些不起作用的东西,而不是破坏一些起作用的东西。是否有可能.docx文件中的某个XML文件缺少根元素,甚至是空的?尽管.docx在其他应用程序中打开得很好,但这是肯定的,但是更改/删除它们会使docx无效。请注意documentPath是有效的docx文件。您是否使用与创建文档时使用的VSTO版本相同的ServerDocument?我觉得ServerDocument找不到它所期望的内容。。。在舱单上?