AltChunk 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义 AltChunk 类。
此类在 Office 2007 及更高版本中提供。
当对象序列化为 xml 时,其限定名称为 w:altChunk。
[DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Wordprocessing.AltChunkProperties))]
[DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2007)]
[DocumentFormat.OpenXml.SchemaAttr(23, "altChunk")]
public class AltChunk : DocumentFormat.OpenXml.OpenXmlCompositeElementpublic class AltChunk : DocumentFormat.OpenXml.OpenXmlCompositeElement[DocumentFormat.OpenXml.SchemaAttr(23, "altChunk")]
public class AltChunk : DocumentFormat.OpenXml.OpenXmlCompositeElement[DocumentFormat.OpenXml.SchemaAttr("w:altChunk")]
public class AltChunk : DocumentFormat.OpenXml.OpenXmlCompositeElement[DocumentFormat.OpenXml.SchemaAttr("w:altChunk")]
public class AltChunk : DocumentFormat.OpenXml.TypedOpenXmlCompositeElement[DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Wordprocessing.AltChunkProperties))]
public class AltChunk : DocumentFormat.OpenXml.OpenXmlCompositeElement[DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Wordprocessing.AltChunkProperties))]
[DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2007)]
public class AltChunk : DocumentFormat.OpenXml.OpenXmlCompositeElement[<DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Wordprocessing.AltChunkProperties))>]
[<DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2007)>]
[<DocumentFormat.OpenXml.SchemaAttr(23, "altChunk")>]
type AltChunk = class
    inherit OpenXmlCompositeElementtype AltChunk = class
    inherit OpenXmlCompositeElement[<DocumentFormat.OpenXml.SchemaAttr(23, "altChunk")>]
type AltChunk = class
    inherit OpenXmlCompositeElement[<DocumentFormat.OpenXml.SchemaAttr("w:altChunk")>]
type AltChunk = class
    inherit OpenXmlCompositeElement[<DocumentFormat.OpenXml.SchemaAttr("w:altChunk")>]
type AltChunk = class
    inherit TypedOpenXmlCompositeElement[<DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Wordprocessing.AltChunkProperties))>]
type AltChunk = class
    inherit OpenXmlCompositeElement[<DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Wordprocessing.AltChunkProperties))>]
[<DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2007)>]
type AltChunk = class
    inherit OpenXmlCompositeElementPublic Class AltChunk
Inherits OpenXmlCompositeElementPublic Class AltChunk
Inherits TypedOpenXmlCompositeElement- 继承
- 继承
- 属性
示例
以下示例演示如何使用 altChunk合并两个字处理文档。 该示例将文件的内容 (source.docx) 插入另一个文件 (Destination.docx) 。 运行示例后,检查文件的内容“Destination.docx”。 你会注意到,源文件的内容直接插入到最初位于文件中的文本之后。 另请注意,代码示例首先删除文件“Destination.docx”并创建一个新的文件。 这是为了避免多次运行代码时出现 ID 冲突。
using System.Linq;  
using System.IO;  
using DocumentFormat.OpenXml.Packaging;  
using DocumentFormat.OpenXml.Wordprocessing;  
namespace altChunk  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {            
            string fileName1 = @"c:\Users\Public\Documents\Destination.docx";  
            string fileName2 = @"c:\Users\Public\Documents\Source.docx";  
            string testFile = @"c:\Users\Public\Documents\Test.docx";  
            File.Delete(fileName1);  
            File.Copy(testFile, fileName1);  
            using (WordprocessingDocument myDoc =  
                WordprocessingDocument.Open(fileName1, true))  
            {  
                string altChunkId = "AltChunkId1";  
                MainDocumentPart mainPart = myDoc.MainDocumentPart;  
                AlternativeFormatImportPart chunk =   
                    mainPart.AddAlternativeFormatImportPart(  
                    AlternativeFormatImportPartType.WordprocessingML, altChunkId);  
                using (FileStream fileStream = File.Open(fileName2, FileMode.Open))  
                    chunk.FeedData(fileStream);  
                AltChunk altChunk = new AltChunk();  
                altChunk.Id = altChunkId;  
                mainPart.Document  
                    .Body  
                    .InsertAfter(altChunk, mainPart.Document.Body  
                    .Elements<Paragraph>().Last());  
                mainPart.Document.Save();  
            }             
        }  
    }  
}  
Imports System.Linq  
Imports System.IO  
Imports DocumentFormat.OpenXml.Packaging  
Imports DocumentFormat.OpenXml.Wordprocessing  
Module Module1  
    Sub Main(ByVal args As String())  
        Dim fileName1 As String = "c:\Users\Public\Documents\Destination.docx"  
        Dim fileName2 As String = "c:\Users\Public\Documents\Source.docx"  
        Dim testFile As String = "c:\Users\Public\Documents\Test.docx"  
        File.Delete(fileName1)  
        File.Copy(testFile, fileName1)  
        Using myDoc As WordprocessingDocument = WordprocessingDocument.Open(fileName1, True)  
            Dim altChunkId As String = "AltChunkId1"  
            Dim mainPart As MainDocumentPart = myDoc.MainDocumentPart  
            Dim chunk As AlternativeFormatImportPart = mainPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.WordprocessingML, altChunkId)  
            Using fileStream As FileStream = File.Open(fileName2, FileMode.Open)  
                chunk.FeedData(fileStream)  
            End Using  
            Dim altChunk As New AltChunk()  
            altChunk.Id = altChunkId  
            mainPart.Document.Body.InsertAfter(altChunk, mainPart.Document.Body.Elements(Of Paragraph)().Last())  
            mainPart.Document.Save()  
        End Using  
    End Sub  
End Module  
注解
[ISO/IEC 29500-1 第 1 版]
altChunk (导入的外部内容定位点)
此元素指定文档中的一个位置,用于插入包含要导入到 wordprocessingML 文档中main外部内容的指定文件的内容。 指定文件的内容应出现在文档中的指定位置,并且以后可以不区分其来源而作为常规 WordprocessingML 发出。 要导入的外部内容的位置应由 Id 属性与此元素上的 id 属性匹配的关系指定。
如果此元素指定的关系类型不是 http://schemas.openxmlformats.org/officeDocument/2006/afChunk、不存在或没有 TargetMode 属性值为 Internal,则文档应被视为不一致。 如果应用程序无法处理目标部件指定的内容类型的外部内容,则它应忽略指定的备用内容,但应继续处理该文件。 如果可能,它还应提供一些未导入未知内容的指示。
[示例:假设 WordprocessingML 文档包含必须从以下 HTML 文档导入的内容:
<html … >  
  <body style="margin-left:200px;margin-top:50px">  
    <p>Paragraph one.</p>  
    <blockquote style="border:5px solid #00FFFF">Paragraph in a blockquote.</blockquote>  
    <p>Paragraph two.</p>  
  </body>  
</html>  
生成的 WordprocessingML 主机文档将包含其自己的 WordprocessingML 内容以及位于相应位置的外部内容导入定位点:
<w:body>  
  <w:altChunk r:id="altChunk1" />  
  <w:p/>  
  <w:sectPr>  
    …  </w:sectPr>  
</w:body>  
altChunk 元素指定必须在文档开头导入 ID 为 altChunk1 的关系所面向的外部内容。 检查相应关系部分项的内容,可以看到该关系的目标:
<Relationships … >  
  …  <Relationship Id="altChunk1" TargetMode="Internal" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/afChunk" Target="import.htm" />  
  …</Relationships>  
相应的关系部件项显示要导入的文件位于main文档旁边,名为 import.htm。 示例结束]
| 父元素 | 
|---|
| body (§17.2.2) ;comment (§17.13.4.2) ;docPartBody (§17.12.6) ;endnote (§17.11.2) ;脚注 (§17.11.10) ;ftr (§17.10.3) ;hdr (§17.10.4) ;tc (§17.4.66) | 
| 子元素 | 第 | 
|---|---|
| altChunkPr (外部内容导入属性) | §17.17.2.2 | 
[注意:此元素的内容模型 (CT_AltChunk) 的 W3C XML 架构定义位于 §A.1 中。 注释结束]
ISO/IEC29500:2008。
构造函数
| AltChunk() | 初始化 AltChunk 类的新实例。 | 
| AltChunk(IEnumerable<OpenXmlElement>) | 使用指定的子元素初始化 AltChunk 类的新实例。 | 
| AltChunk(OpenXmlElement[]) | 使用指定的子元素初始化 AltChunk 类的新实例。 | 
| AltChunk(String) | 从外部 XML 初始化 AltChunk 类的新实例。 | 
属性
| AltChunkProperties | 外部内容导入属性。 表示架构中的以下元素标记:w:altChunkPr。 | 
| ChildElements | 获取当前元素的所有子节点。(继承自 OpenXmlElement) | 
| ExtendedAttributes | 获取当前元素的架构) 中未定义的所有扩展属性 (属性。(继承自 OpenXmlElement) | 
| Features | IFeatureCollection获取当前元素的 。 此功能集合将是只读的,但会从其父部件和包继承功能(如果可用)。(继承自 OpenXmlElement) | 
| FirstChild | 获取当前 OpenXmlElement 元素的第一个子元素。(继承自 OpenXmlCompositeElement) | 
| HasAttributes | 获取一个值,该值指示当前元素是否具有任何属性。(继承自 OpenXmlElement) | 
| HasChildren | 获取一个值,该值指示当前元素是否具有任何子元素。(继承自 OpenXmlCompositeElement) | 
| Id | 与部件的关系 表示架构中的以下属性:r:id | 
| InnerText | 获取或设置当前节点及其所有子节点的串联值。(继承自 OpenXmlCompositeElement) | 
| InnerXml | 获取或设置仅表示当前节点的子节点的标记。(继承自 OpenXmlCompositeElement) | 
| LastChild | 获取当前 OpenXmlElement 元素的最后一个子元素。 如果没有这样的 OpenXmlElement 元素,则返回 null (Visual Basic) Nothing。(继承自 OpenXmlCompositeElement) | 
| LocalName | 定义 AltChunk 类。 此类在 Office 2007 及更高版本中提供。 当对象序列化为 xml 时,其限定名称为 w:altChunk。 | 
| LocalName | 获取当前元素的本地名称。(继承自 OpenXmlElement) | 
| MCAttributes | 获取或设置标记兼容性属性。 如果未为当前元素定义标记兼容性属性,则返回 null。(继承自 OpenXmlElement) | 
| NamespaceDeclarations | 获取在当前元素中定义的所有命名空间声明。 如果没有命名空间声明,则返回空枚举器。(继承自 OpenXmlElement) | 
| NamespaceUri | 获取当前元素的命名空间 URI。(继承自 OpenXmlElement) | 
| OpenXmlElementContext | 获取当前元素的 OpenXmlElementContext。(继承自 OpenXmlElement) | 
| OuterXml | 获取表示当前元素及其所有子元素的标记。(继承自 OpenXmlElement) | 
| Parent | 获取当前元素的父元素。(继承自 OpenXmlElement) | 
| Prefix | 获取当前元素的命名空间前缀。(继承自 OpenXmlElement) | 
| XmlQualifiedName | 获取当前元素的限定名称。(继承自 OpenXmlElement) | 
| XName | 获取当前元素的限定名称。(继承自 OpenXmlElement) | 
方法
| AddAnnotation(Object) | 将 对象添加到当前 OpenXmlElement 元素的批注列表中。(继承自 OpenXmlElement) | 
| AddChild(OpenXmlElement, Boolean) | 如果指定元素是已知的子元素,则将其添加到 元素。 这会根据架构将 元素添加到正确的位置。(继承自 OpenXmlCompositeElement) | 
| AddNamespaceDeclaration(String, String) | 将命名空间声明添加到当前节点。(继承自 OpenXmlElement) | 
| Ancestors() | 枚举当前元素的所有上级。(继承自 OpenXmlElement) | 
| Ancestors<T>() | 仅枚举具有指定类型的当前元素的上级。(继承自 OpenXmlElement) | 
| Annotation(Type) | 从当前 OpenXmlElement 元素获取指定类型的第一个批注对象。(继承自 OpenXmlElement) | 
| Annotation<T>() | 从当前 OpenXmlElement 元素获取指定类型的第一个批注对象。(继承自 OpenXmlElement) | 
| Annotations(Type) | 获取具有当前 OpenXmlElement 元素的指定类型的批注的集合。(继承自 OpenXmlElement) | 
| Annotations<T>() | 获取具有当前 OpenXmlElement 元素的指定类型的批注的集合。(继承自 OpenXmlElement) | 
| Append(IEnumerable<OpenXmlElement>) | 将元素列表中的每个元素追加到当前元素的子元素列表的末尾。(继承自 OpenXmlElement) | 
| Append(OpenXmlElement[]) | 将元素数组中的每个元素追加到当前元素的子元素列表的末尾。(继承自 OpenXmlElement) | 
| AppendChild<T>(T) | 将指定的元素追加到当前元素的子节点列表的末尾。(继承自 OpenXmlCompositeElement) | 
| ClearAllAttributes() | 清除所有属性,包括已知属性和扩展属性。(继承自 OpenXmlElement) | 
| Clone() | 创建当前节点的副本。(继承自 OpenXmlElement) | 
| CloneNode(Boolean) | 创建此节点的重复项。 | 
| Descendants() | 枚举当前元素的所有后代。(继承自 OpenXmlElement) | 
| Descendants<T>() | 枚举类型为 T 的当前元素的所有后代。(继承自 OpenXmlElement) | 
| Elements() | 枚举当前元素的所有子元素。(继承自 OpenXmlElement) | 
| Elements<T>() | 仅枚举具有指定类型的当前元素的子元素。(继承自 OpenXmlElement) | 
| ElementsAfter() | 枚举与当前元素相同的父级的所有同级元素。(继承自 OpenXmlElement) | 
| ElementsBefore() | 枚举当前元素之前且具有与当前元素相同的父级的所有同级元素。(继承自 OpenXmlElement) | 
| GetAttribute(String, String) | 获取具有指定标记名称和命名空间 URI 的 Open XML 属性。(继承自 OpenXmlElement) | 
| GetAttributes() | 获取一个列表,该列表包含所有属性的副本。(继承自 OpenXmlElement) | 
| GetEnumerator() | 返回循环访问子集合的枚举器。(继承自 OpenXmlElement) | 
| GetFirstChild<T>() | 查找类型 T 中的第一个子元素。(继承自 OpenXmlElement) | 
| InsertAfter<T>(T, OpenXmlElement) | 在指定的引用元素之后立即插入指定的元素。(继承自 OpenXmlCompositeElement) | 
| InsertAfterSelf<T>(T) | 在当前元素之后立即插入指定的元素。(继承自 OpenXmlElement) | 
| InsertAt<T>(T, Int32) | 在当前元素的子元素的指定索引处插入指定的元素。(继承自 OpenXmlCompositeElement) | 
| InsertBefore<T>(T, OpenXmlElement) | 将指定的元素紧接在指定的引用元素之前。(继承自 OpenXmlCompositeElement) | 
| InsertBeforeSelf<T>(T) | 将指定的元素紧接在当前元素的前面。(继承自 OpenXmlElement) | 
| IsAfter(OpenXmlElement) | 确定当前元素是否以文档顺序显示在指定元素之后。(继承自 OpenXmlElement) | 
| IsBefore(OpenXmlElement) | 确定当前元素是否按文档顺序显示在指定元素之前。(继承自 OpenXmlElement) | 
| LookupNamespace(String) | 解析当前节点上下文中的命名空间前缀。(继承自 OpenXmlElement) | 
| LookupPrefix(String) | 查找当前元素范围内命名空间 URI 的相应前缀。(继承自 OpenXmlElement) | 
| NextSibling() | 获取紧跟在当前 OpenXmlElement 元素后面的 OpenXmlElement 元素。 如果没有下一个 OpenXmlElement 元素,则返回 null (Visual Basic) Nothing。(继承自 OpenXmlElement) | 
| NextSibling<T>() | 获取具有当前 OpenXmlElement 元素后面的指定类型的 OpenXmlElement 元素。 如果没有下一个 OpenXmlElement,则返回 null (Visual Basic) Nothing。(继承自 OpenXmlElement) | 
| PrependChild<T>(T) | 在当前元素的子节点列表的开头插入指定的元素。(继承自 OpenXmlCompositeElement) | 
| PreviousSibling() | 获取紧接在当前 OpenXmlElement 元素之前的 OpenXmlElement 元素。 如果没有前面的 OpenXmlElement 元素,则返回 null (Visual Basic ) 中 Nothing。(继承自 OpenXmlElement) | 
| PreviousSibling<T>() | 获取位于当前 OpenXmlElement 之前的指定类型的 OpenXmlElement 元素。 如果没有前面的 OpenXmlElement 元素,则返回 null (Visual Basic) Nothing。(继承自 OpenXmlElement) | 
| Remove() | 从其父元素中删除当前元素。(继承自 OpenXmlElement) | 
| RemoveAllChildren() | 删除当前元素的所有子元素。(继承自 OpenXmlCompositeElement) | 
| RemoveAllChildren<T>() | 删除类型为 T 的当前元素的所有子元素。(继承自 OpenXmlElement) | 
| RemoveAnnotations(Type) | 从当前 OpenXmlElement 元素中删除指定类型的注释。(继承自 OpenXmlElement) | 
| RemoveAnnotations<T>() | 从当前 OpenXmlElement 元素中删除具有指定类型的批注。(继承自 OpenXmlElement) | 
| RemoveAttribute(String, String) | 从当前元素中删除 属性。(继承自 OpenXmlElement) | 
| RemoveChild<T>(T) | 删除指定的子元素。(继承自 OpenXmlCompositeElement) | 
| RemoveNamespaceDeclaration(String) | 删除指定前缀的命名空间声明。 如果没有前缀,则不删除任何内容。(继承自 OpenXmlElement) | 
| ReplaceChild<T>(OpenXmlElement, T) | 将当前元素的子元素之一替换为另一个 OpenXmlElement 元素。(继承自 OpenXmlCompositeElement) | 
| SetAttribute(OpenXmlAttribute) | 将特性设置为指定的元素。 如果该属性是已知属性,则设置该特性的值。 如果该属性是扩展属性,则会将“openxmlAttribute”添加到扩展属性列表中。(继承自 OpenXmlElement) | 
| SetAttributes(IEnumerable<OpenXmlAttribute>) | 设置元素的多个属性。 如果属性是已知属性,则会设置该属性的值。 如果属性是扩展属性,则会将“openxmlAttribute”添加到扩展属性列表中。(继承自 OpenXmlElement) | 
| WriteTo(XmlWriter) | 将当前节点保存到指定的 XmlWriter。(继承自 OpenXmlElement) | 
显式接口实现
| IEnumerable.GetEnumerator() | 定义 AltChunk 类。 此类在 Office 2007 及更高版本中提供。 当对象序列化为 xml 时,其限定名称为 w:altChunk。(继承自 OpenXmlElement) | 
| IEnumerable<OpenXmlElement>.GetEnumerator() | 返回循环访问子集合的枚举器。(继承自 OpenXmlElement) |