如何在创建有效的ServerDocument实例时阻止XmlException?

时间:2016-03-02 12:53:20

标签: c# xml ms-word vsto wordprocessingml

我有以下代码:

var sd = new ServerDocument(documentPath);

应该注意,documentPath是一个有效的路径,文档使用的是vsto应用程序。它打开很好,我可以毫无问题地使用我的vsto扩展。

提到的代码行抛出异常:

  

缺少根元素。

     

at System.Xml.XmlTextReaderImpl.Throw(Exception e)at   System.Xml.XmlTextReaderImpl.ParseDocumentContent()at   System.Xml.XmlTextReaderImpl.Read()at   System.Xml.XmlLoader.Load(XmlDocument doc,XmlReader reader,Boolean   保存在System.Xml.XmlDocument.Load(XmlReader   读者)在System.Xml.XmlDocument.LoadXml(String xml)at   Microsoft.Office.Tools.OfficeOpenXmlAppInfoDocument.ServerAppInfo.TryGetManifestInfo(的PackagePart   部分,ManifestType& type,String& xml)at   Microsoft.Office.Tools.OfficeOpenXmlAppInfoDocument.ServerAppInfo.EnsureMaps()   在   Microsoft.Office.Tools.OfficeOpenXmlAppInfoDocument.ServerAppInfo..ctor(包   包裹)   Microsoft.Office.Tools.OfficeOpenXmlAppInfoDocument.EnsureAppInfo()
  在   Microsoft.Office.Tools.OfficeOpenXmlAppInfoDocument.Microsoft.VisualStudio.Tools.Applications.Runtime.IAppInfo.ReadItem(字符串   type,String id)at   Microsoft.VisualStudio.Tools.Applications.AppInfo.GetDeploymentManifestUrl(IAppInfo   appInfo)at   Microsoft.VisualStudio.Tools.Applications.ServerDocument.Initialize(字节[]   bytes,String documentPathOrFileType,FileAccess访问,布尔值   throwOnPreviousVersion)at   Microsoft.VisualStudio.Tools.Applications.ServerDocument.Initialize(字节[]   bytes,String documentPathOrFileType,FileAccess access)at   Microsoft.VisualStudio.Tools.Applications.ServerDocument..ctor(字符串   documentPath)在ConsoleApplication12.Program.Main(String [] args)

如何预防此问题?

1 个答案:

答案 0 :(得分:0)

您的文档是否有根元素?

您获得的错误:

  

"缺少根元素。"

表示您的文档缺少根元素。那么"根元素&#34 ;?

Wikipedia说:

  

每个XML文档只有一个根元素。它包含所有其他元素,因此是所有其他元素的唯一父元素。 ROOT元素也称为PARENT元素。

以下是一个例子:

<animals>
    <cat />
    <dog />
    <armadillo />
</animals>

animals是此示例中的根元素。

简而言之 - 检查您的文档以确保它只有一个根元素。