使用MainDocumentPart.GetXDocument和MainDocumentPart.Document有什么概念上的区别?

时间:2013-01-31 17:06:53

标签: openxml

我正在使用OpenXML和PowerTools for Open XML来处理MSWord文档以进行自定义转换(转换为HTML)和就地修改(例如创建样式目录)。

我很难理解何时会使用MainDocumentPart.GetXDocument XML导航方法(由PowerTools使用)和MainDocumentPart.Document(似乎是官方示例)。

我在XDocument上使用了LINQ,但似乎你可以将它用于两者。 MainDocumentPart.Document方法看起来有点类型化。

我缺少某种强烈的概念差异吗?我可以在一个而不是在另一个中做的事情?固有的限制?

1 个答案:

答案 0 :(得分:2)

使用MainDocumentPart.GetXDocument XML它与执行XDocument.Load(MainDocumentPart.GetStream())基本相同,您将获得一个XDocument类型,然后您可以使用命名空间和节点名称进行遍历。 MainDocumentPart.Document为您提供了一个强类型对象,您可以使用该对象具有适当的属性并说明对象位置的差异。关于后者的好处是它内置了枚举和类型检查,因此您不会破坏文档。我是键入模型的粉丝,但请记住,包的一些部分CustomXML是此对象模型中未涵盖的示例,您必须使用XDocument。