Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
OpenXmlElement class
Collapse the table of content
Expand the table of content

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.
Show:
© 2015 Microsoft