CustomXmlPartCollection

CustomXmlPartCollection class

Stellt eine Sammlung benutzerdefinierter XML-Teile dar. Die Artikel sindCustomXmlPart Objekte.

Um mehr zu erfahren, besuchen Sie dieStrukturierte Dokument-Tags oder Inhaltskontrolle Dokumentationsartikel.

public class CustomXmlPartCollection : IEnumerable<CustomXmlPart>

Konstrukteure

NameBeschreibung
CustomXmlPartCollection()Default_Constructor

Eigenschaften

NameBeschreibung
Count { get; }Ruft die Anzahl der in der Sammlung enthaltenen Elemente ab.
Item { get; set; }Ruft ein Element am angegebenen Index ab oder legt es fest.

Methoden

NameBeschreibung
Add(CustomXmlPart)Fügt der Sammlung ein Element hinzu.
Add(string, string)Erstellt einen neuen XML-Teil mit dem angegebenen XML und fügt ihn der Sammlung hinzu.
Clear()Entfernt alle Elemente aus der Sammlung.
Clone()Erstellt eine tiefe Kopie dieser Sammlung und ihrer Elemente.
GetById(string)Sucht einen benutzerdefinierten XML-Teil anhand seiner Kennung und gibt ihn zurück.
GetEnumerator()Gibt ein Enumeratorobjekt zurück, das zum Durchlaufen aller Elemente in der Sammlung verwendet werden kann.
RemoveAt(int)Entfernt ein Element am angegebenen Index.

Bemerkungen

Normalerweise müssen Sie keine Instanzen dieser Klasse erstellen. Sie können auf benutzerdefinierte XML-Daten zugreifen, die in einem Dokument über gespeichert sindCustomXmlParts Eigentum.

Beispiele

Zeigt, wie ein strukturiertes Dokument-Tag mit benutzerdefinierten XML-Daten erstellt wird.

Document doc = new Document();

// Einen XML-Teil erstellen, der Daten enthält, und ihn der Sammlung des Dokuments hinzufügen.
// Wenn wir die Registerkarte „Entwickler“ in Microsoft Word aktivieren,
// Elemente aus dieser Sammlung finden wir im „XML Mapping Pane“, zusammen mit einigen Standardelementen.
string xmlPartId = Guid.NewGuid().ToString("B");
string xmlPartContent = "<root><text>Hello world!</text></root>";
CustomXmlPart xmlPart = doc.CustomXmlParts.Add(xmlPartId, xmlPartContent);

Assert.AreEqual(Encoding.ASCII.GetBytes(xmlPartContent), xmlPart.Data);
Assert.AreEqual(xmlPartId, xmlPart.Id);

// Nachfolgend finden Sie zwei Möglichkeiten, auf XML-Teile zu verweisen.
// 1 – Durch einen Index in der benutzerdefinierten XML-Teilesammlung:
Assert.AreEqual(xmlPart, doc.CustomXmlParts[0]);

// 2 - Nach GUID:
Assert.AreEqual(xmlPart, doc.CustomXmlParts.GetById(xmlPartId));

// Eine XML-Schema-Zuordnung hinzufügen.
xmlPart.Schemas.Add("http://www.w3.org/2001/XMLSchema");

// Ein Teil klonen und es dann in die Sammlung einfügen.
CustomXmlPart xmlPartClone = xmlPart.Clone();
xmlPartClone.Id = Guid.NewGuid().ToString("B");
doc.CustomXmlParts.Add(xmlPartClone);

Assert.AreEqual(2, doc.CustomXmlParts.Count);

// Durchlaufen Sie die Sammlung und drucken Sie den Inhalt jedes Teils aus.
using (IEnumerator<CustomXmlPart> enumerator = doc.CustomXmlParts.GetEnumerator())
{
    int index = 0;
    while (enumerator.MoveNext())
    {
        Console.WriteLine($"XML part index {index}, ID: {enumerator.Current.Id}");
        Console.WriteLine($"\tContent: {Encoding.UTF8.GetString(enumerator.Current.Data)}");
        index++;
    }
}

// Verwenden Sie die Methode „RemoveAt“, um den geklonten Teil nach Index zu entfernen.
doc.CustomXmlParts.RemoveAt(1);

Assert.AreEqual(1, doc.CustomXmlParts.Count);

// Klonen Sie die XML-Teilesammlung und entfernen Sie dann mit der Methode „Clear“ alle Elemente auf einmal.
CustomXmlPartCollection customXmlParts = doc.CustomXmlParts.Clone();
customXmlParts.Clear();

// Erstellen Sie ein strukturiertes Dokument-Tag, das den Inhalt unseres Teils anzeigt, und fügen Sie ihn in den Dokumentkörper ein.
StructuredDocumentTag tag = new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Block);
tag.XmlMapping.SetMapping(xmlPart, "/root[1]/text[1]", string.Empty);

doc.FirstSection.Body.AppendChild(tag);

doc.Save(ArtifactsDir + "StructuredDocumentTag.CustomXml.docx");

Siehe auch