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:
- Biblioteca Aspose.Words para .NET instalada. Você pode baixá-la doSite Aspose.
- 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.