Creazione di una sezione ripetuta della tabella mappata alla parte XML personalizzata

Introduzione

In questo tutorial, illustreremo il processo di creazione di una tabella con una sezione ripetuta che è mappata a una parte XML personalizzata usando Aspose.Words per .NET. Ciò è particolarmente utile per generare dinamicamente documenti basati su dati strutturati.

Prerequisiti

Prima di iniziare, assicurati di avere quanto segue:

  1. Libreria Aspose.Words per .NET installata. Puoi scaricarla daSito web di Aspose.
  2. Conoscenza di base di C# e XML.

Importazione degli spazi dei nomi

Assicurati di includere gli spazi dei nomi necessari nel tuo progetto:

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

Passaggio 1: inizializzare Document e DocumentBuilder

Per prima cosa, crea un nuovo documento e inizializza unDocumentBuilder:

string dataDir = "YOUR DOCUMENT DIRECTORY";

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

Passaggio 2: aggiungere la parte XML personalizzata

Aggiungi una parte XML personalizzata al documento. Questo XML contiene i dati che vogliamo mappare alla nostra tabella:

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

Passaggio 3: creare la struttura della tabella

Quindi, utilizzare ilDocumentBuilder per creare l’intestazione della tabella:

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

Passaggio 4: creare una sezione ripetuta

Crea unStructuredDocumentTag (SDT) per la sezione ripetuta e mapparla nei dati XML:

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

Passaggio 5: creare un elemento di sezione ripetuto

Crea un SDT per l’elemento della sezione ripetuta e aggiungilo alla sezione ripetuta:

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

Passaggio 6: mappare i dati XML alle celle della tabella

Crea SDT per il titolo e l’autore, associali ai dati XML e aggiungili alla riga:

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

Passaggio 7: Salvare il documento

Infine, salva il documento nella directory specificata:

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

Conclusione

Seguendo questi passaggi, hai creato con successo una tabella con una sezione ripetuta mappata a una parte XML personalizzata utilizzando Aspose.Words per .NET. Ciò consente la generazione di contenuti dinamici basati su dati strutturati, rendendo la creazione di documenti più flessibile e potente.

Domande frequenti

Che cos’è uno StructuredDocumentTag (SDT)?

Un SDT, noto anche come controllo del contenuto, è un’area delimitata in un documento utilizzata per contenere dati strutturati.

Posso utilizzare altri tipi di dati nella parte XML personalizzata?

Sì, puoi strutturare la tua parte XML personalizzata con qualsiasi tipo di dati e mapparli di conseguenza.

Come posso aggiungere più righe alla sezione ripetuta?

La sezione ripetuta replica automaticamente la struttura delle righe per ciascun elemento nel percorso XML mappato.