CustomXmlPartCollection

CustomXmlPartCollection class

Stellt eine Sammlung von benutzerdefinierten XML-Teilen dar. Die Elemente sindCustomXmlPart Objekte.

Um mehr zu erfahren, besuchen Sie dieStrukturierte Dokument-Tags oder Inhaltssteuerung 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 vollständige Kopie dieser Sammlung und ihrer Elemente.
GetById(string)Sucht und gibt einen benutzerdefinierten XML-Teil anhand seiner Kennung zurück.
GetEnumerator()Gibt ein Enumeratorobjekt zurück, mit dem alle Elemente in der Sammlung durchlaufen werden können.
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 gespeichert sind, überCustomXmlParts Eigentum.

Beispiele

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

Document doc = new Document();

// Erstellen Sie einen XML-Teil, der Daten enthält, und fügen Sie ihn der Sammlung des Dokuments hinzu.
// Wenn wir die Registerkarte "Entwickler" in Microsoft Word aktivieren,
// Wir können Elemente aus dieser Sammlung zusammen mit einigen Standardelementen im „XML-Mapping-Bereich“ finden.
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);

// Unten sind 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-Schemazuordnung hinzufügen.
xmlPart.Schemas.Add("http://www.w3.org/2001/XMLSchema");

// Klonen Sie einen Teil und fügen Sie ihn dann in die Sammlung ein.
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.
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 verwenden Sie dann die Methode „Clear“, um alle Elemente auf einmal zu entfernen.
CustomXmlPartCollection customXmlParts = doc.CustomXmlParts.Clone();
customXmlParts.Clear();

// Erstellen Sie ein strukturiertes Dokument-Tag, das den Inhalt unseres Teils anzeigt, und fügen Sie es in den Dokumenttext 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