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:
- Libreria Aspose.Words per .NET installata. Puoi scaricarla daSito web di Aspose.
- 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.