Een herhalende tabelsectie maken die is toegewezen aan een aangepast XML-onderdeel

Invoering

In deze tutorial doorlopen we het proces van het maken van een tabel met een herhalende sectie die is toegewezen aan een aangepast XML-onderdeel met behulp van Aspose.Words voor .NET. Dit is met name handig voor het dynamisch genereren van documenten op basis van gestructureerde gegevens.

Vereisten

Voordat we beginnen, zorg ervoor dat u het volgende heeft:

  1. Aspose.Words voor .NET-bibliotheek geïnstalleerd. U kunt het downloaden van deAspose-website.
  2. Basiskennis van C# en XML.

Naamruimten importeren

Zorg ervoor dat u de benodigde naamruimten in uw project opneemt:

using Aspose.Words;
using Aspose.Words.Markup;
using Aspose.Words.Tables;

Stap 1: Initialiseer Document en DocumentBuilder

Maak eerst een nieuw document en initialiseer eenDocumentBuilder:

string dataDir = "YOUR DOCUMENT DIRECTORY";

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Stap 2: Aangepast XML-onderdeel toevoegen

Voeg een aangepast XML-onderdeel toe aan het document. Deze XML bevat de gegevens die we willen toewijzen aan onze tabel:

CustomXmlPart xmlPart = doc.CustomXmlParts.Add("Books",
    "<books><book><title>Everyday Italian</title><author>Giada De Laurentiis</author></book>" +
    "<book><title>Harry Potter</title><author>J K. Rowling</author></book>" +
    "<book><title>Learning XML</title><author>Erik T. Ray</author></book></books>");

Stap 3: De tabelstructuur maken

Gebruik vervolgens deDocumentBuilder om de tabelkop te maken:

Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Title");
builder.InsertCell();
builder.Write("Author");
builder.EndRow();
builder.EndTable();

Stap 4: Herhalende sectie maken

Maak eenStructuredDocumentTag (SDT) voor het herhalende gedeelte en koppel dit aan de XML-gegevens:

StructuredDocumentTag repeatingSectionSdt = new StructuredDocumentTag(doc, SdtType.RepeatingSection, MarkupLevel.Row);
repeatingSectionSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book", "");
table.AppendChild(repeatingSectionSdt);

Stap 5: Een herhalend sectie-item maken

Maak een SDT voor het herhalende sectie-item en voeg deze toe aan de herhalende sectie:

StructuredDocumentTag repeatingSectionItemSdt = new StructuredDocumentTag(doc, SdtType.RepeatingSectionItem, MarkupLevel.Row);
repeatingSectionSdt.AppendChild(repeatingSectionItemSdt);
Row row = new Row(doc);
repeatingSectionItemSdt.AppendChild(row);

Stap 6: XML-gegevens toewijzen aan tabelcellen

Maak SDT’s voor de titel en auteur, koppel ze aan de XML-gegevens en voeg ze toe aan de rij:

StructuredDocumentTag titleSdt = new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Cell);
titleSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book[1]/title[1]", "");
row.AppendChild(titleSdt);

StructuredDocumentTag authorSdt = new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Cell);
authorSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book[1]/author[1]", "");
row.AppendChild(authorSdt);

Stap 7: Sla het document op

Sla het document ten slotte op in de opgegeven directory:

doc.Save(dataDir + "WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx");

Conclusie

Door deze stappen te volgen, hebt u met succes een tabel gemaakt met een herhalende sectie die is toegewezen aan een aangepast XML-onderdeel met behulp van Aspose.Words voor .NET. Dit maakt dynamische contentgeneratie mogelijk op basis van gestructureerde gegevens, waardoor documentcreatie flexibeler en krachtiger wordt.

Veelgestelde vragen

Wat is een StructuredDocumentTag (SDT)?

Een SDT, ook wel een content control genoemd, is een begrensd gebied in een document dat wordt gebruikt om gestructureerde gegevens te bevatten.

Kan ik andere gegevenstypen gebruiken in het aangepaste XML-onderdeel?

Ja, u kunt uw aangepaste XML-onderdeel structureren met elk gegevenstype en deze dienovereenkomstig toewijzen.

Hoe voeg ik meer rijen toe aan het herhalende gedeelte?

De herhalende sectie repliceert automatisch de rijstructuur voor elk item in het toegewezen XML-pad.