Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在创建有效的ServerDocument实例时防止XmlException?_C#_Xml_Ms Word_Vsto_Wordprocessingml - Fatal编程技术网

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找不到它所期望的内容。。。在舱单上?