Export (0) Print
Expand All

OpenXmlElement class

Represents a base class that all elements in an Office Open XML document derive from. Represents a base class for all elements in an Office Open XML document.

Namespace:  DocumentFormat.OpenXml
Assembly:  DocumentFormat.OpenXml (in DocumentFormat.OpenXml.dll)

public abstract class OpenXmlElement : IEnumerable<OpenXmlElement>, 
	IEnumerable, ICloneable

Annotations will not be cloned when calling .Clone() and .CloneNode(bool)

The following code example shows how to access elements at the same level in a word-processing document. The test file used in the example contains the text “OpenXml Element.”

using System;
using System.Collections.Generic;
using System.Linq;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

namespace OpenXmlElement
{
    class Program
    {
        // This code example shows how to access elements at the same level  
        // in a word-processing document. 
        // The example is using a file that contains the text "OpenXml Element."
        static void Main(string[] args)
        {
            string fileName = @"C:\Users\Public\Documents\AccessElementsSameLevel.docx";
            using (WordprocessingDocument wordprocessingDocument = 
                WordprocessingDocument.Open(fileName, false))
            {
                // Create a Body object.
                DocumentFormat.OpenXml.Wordprocessing.Body body =
                    wordprocessingDocument.MainDocumentPart.Document.Body;

                // Create a Paragraph object.
                DocumentFormat.OpenXml.Wordprocessing.Paragraph firstParagraph =
                    body.Elements<Paragraph>().FirstOrDefault();

                // Get the first child of an OpenXmlElement.
                 DocumentFormat.OpenXml.OpenXmlElement firstChild = firstParagraph.FirstChild;
                IEnumerable<Run> elementsAfter =
                    firstChild.ElementsAfter().Where(c => c is Run).Cast<Run>();

                // Get the Run elements after the specified element.
                Console.WriteLine("Run elements after the first child are: ");
                foreach (DocumentFormat.OpenXml.Wordprocessing.Run run in elementsAfter)
                {
                    Console.WriteLine(run.InnerText);
                }
                Console.ReadKey();
            }
        }
    }
}
// Output:
// Run elements after the first child are:
// OpenXml
//  Element

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions

Show:
© 2014 Microsoft