Criando Seção de Repetição de Tabela Mapeada para Parte XML Personalizada

Introdução

Neste tutorial, percorreremos o processo de criação de uma tabela com uma seção de repetição que é mapeada para uma parte XML personalizada usando Aspose.Words para .NET. Isso é particularmente útil para gerar documentos dinamicamente com base em dados estruturados.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte:

  1. Biblioteca Aspose.Words para .NET instalada. Você pode baixá-la doSite Aspose.
  2. Um conhecimento básico de C# e XML.

Importar namespaces

Certifique-se de incluir os namespaces necessários em seu projeto:

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

Etapa 1: inicializar o documento e o DocumentBuilder

Primeiro, crie um novo documento e inicialize umDocumentBuilder:

string dataDir = "YOUR DOCUMENT DIRECTORY";

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

Etapa 2: Adicionar parte XML personalizada

Adicione uma parte XML personalizada ao documento. Este XML contém os dados que queremos mapear para nossa tabela:

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

Etapa 3: Crie a estrutura da tabela

Em seguida, use oDocumentBuilder para criar o cabeçalho da tabela:

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

Etapa 4: Criar seção de repetição

Criar umStructuredDocumentTag (SDT) para a seção repetida e mapeie-a para os dados XML:

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

Etapa 5: Criar item de seção repetitivo

Crie um SDT para o item de seção repetitiva e adicione-o à seção repetitiva:

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

Etapa 6: Mapear dados XML para células de tabela

Crie SDTs para o título e o autor, mapeie-os para os dados XML e anexe-os à linha:

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

Etapa 7: Salve o documento

Por fim, salve o documento no diretório especificado:

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

Conclusão

Seguindo essas etapas, você criou com sucesso uma tabela com uma seção de repetição mapeada para uma parte XML personalizada usando o Aspose.Words para .NET. Isso permite a geração dinâmica de conteúdo com base em dados estruturados, tornando a criação de documentos mais flexível e poderosa.

Perguntas frequentes

O que é um StructuredDocumentTag (SDT)?

Um SDT, também conhecido como controle de conteúdo, é uma região delimitada em um documento que é usada para conter dados estruturados.

Posso usar outros tipos de dados na parte XML personalizada?

Sim, você pode estruturar sua parte XML personalizada com qualquer tipo de dado e mapeá-los adequadamente.

Como adiciono mais linhas à seção de repetição?

A seção de repetição replica automaticamente a estrutura da linha para cada item no caminho XML mapeado.