Tworzenie powtarzającej się sekcji tabeli zamapowanej na niestandardową część XML

Wstęp

W tym samouczku przejdziemy przez proces tworzenia tabeli z powtarzającą się sekcją, która jest mapowana na niestandardową część XML przy użyciu Aspose.Words dla .NET. Jest to szczególnie przydatne do dynamicznego generowania dokumentów na podstawie ustrukturyzowanych danych.

Wymagania wstępne

Zanim zaczniemy, upewnij się, że masz następujące rzeczy:

  1. Zainstalowano bibliotekę Aspose.Words dla .NET. Możesz ją pobrać ze stronyStrona internetowa Aspose.
  2. Podstawowa znajomość języka C# i XML.

Importuj przestrzenie nazw

Pamiętaj o uwzględnieniu w projekcie niezbędnych przestrzeni nazw:

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

Krok 1: Zainicjuj dokument i DocumentBuilder

Najpierw utwórz nowy dokument i zainicjujDocumentBuilder:

string dataDir = "YOUR DOCUMENT DIRECTORY";

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

Krok 2: Dodaj niestandardową część XML

Dodaj niestandardową część XML do dokumentu. Ten XML zawiera dane, które chcemy zmapować do naszej tabeli:

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>");

Krok 3: Utwórz strukturę tabeli

Następnie użyjDocumentBuilder aby utworzyć nagłówek tabeli:

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

Krok 4: Utwórz sekcję powtarzalną

UtwórzStructuredDocumentTag (SDT) dla powtarzającej się sekcji i mapuj ją na dane XML:

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

Krok 5: Utwórz powtarzający się element sekcji

Utwórz SDT dla elementu sekcji powtarzalnej i dodaj go do sekcji powtarzalnej:

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

Krok 6: Mapowanie danych XML do komórek tabeli

Utwórz SDT dla tytułu i autora, zmapuj je do danych XML i dołącz do wiersza:

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);

Krok 7: Zapisz dokument

Na koniec zapisz dokument w określonym katalogu:

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

Wniosek

Postępując zgodnie z tymi krokami, udało Ci się utworzyć tabelę z powtarzającą się sekcją zamapowaną na niestandardową część XML przy użyciu Aspose.Words dla .NET. Umożliwia to dynamiczne generowanie treści na podstawie ustrukturyzowanych danych, dzięki czemu tworzenie dokumentów jest bardziej elastyczne i wydajne.

Najczęściej zadawane pytania

Czym jest StructuredDocumentTag (SDT)?

SDT, znany również jako kontrolka zawartości, to ograniczony obszar w dokumencie, który służy do przechowywania ustrukturyzowanych danych.

Czy mogę używać innych typów danych w niestandardowej części XML?

Tak, możesz utworzyć strukturę własnego pliku XML przy użyciu dowolnych typów danych i odpowiednio je mapować.

Jak dodać więcej wierszy do sekcji powtarzalnej?

Sekcja powtarzalna automatycznie replikuje strukturę wiersza dla każdego elementu w mapowanej ścieżce XML.