Vytvoření části opakování tabulky mapované na vlastní část XML
Zavedení
V tomto tutoriálu si projdeme procesem vytváření tabulky s opakující se částí, která je mapována na vlastní XML část pomocí Aspose.Words for .NET. To je užitečné zejména pro dynamické generování dokumentů na základě strukturovaných dat.
Předpoklady
Než začneme, ujistěte se, že máte následující:
- Nainstalovaná knihovna Aspose.Words for .NET. Můžete si jej stáhnout zAspose webové stránky.
- Základní znalost C# a XML.
Importovat jmenné prostory
Nezapomeňte do projektu zahrnout potřebné jmenné prostory:
using Aspose.Words;
using Aspose.Words.Markup;
using Aspose.Words.Tables;
Krok 1: Inicializujte Document a DocumentBuilder
Nejprve vytvořte nový dokument a inicializujte jejDocumentBuilder
:
string dataDir = "YOUR DOCUMENT DIRECTORY";
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Krok 2: Přidejte vlastní část XML
Přidejte do dokumentu vlastní část XML. Tento XML obsahuje data, která chceme mapovat do naší tabulky:
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: Vytvořte strukturu tabulky
Dále použijteDocumentBuilder
pro vytvoření záhlaví tabulky:
Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Title");
builder.InsertCell();
builder.Write("Author");
builder.EndRow();
builder.EndTable();
Krok 4: Vytvořte opakující se oddíl
Vytvořte aStructuredDocumentTag
(SDT) pro opakující se sekci a namapujte ji na data XML:
StructuredDocumentTag repeatingSectionSdt = new StructuredDocumentTag(doc, SdtType.RepeatingSection, MarkupLevel.Row);
repeatingSectionSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book", "");
table.AppendChild(repeatingSectionSdt);
Krok 5: Vytvořte položku opakující se sekce
Vytvořte SDT pro položku opakující se sekce a přidejte ji do opakující se sekce:
StructuredDocumentTag repeatingSectionItemSdt = new StructuredDocumentTag(doc, SdtType.RepeatingSectionItem, MarkupLevel.Row);
repeatingSectionSdt.AppendChild(repeatingSectionItemSdt);
Row row = new Row(doc);
repeatingSectionItemSdt.AppendChild(row);
Krok 6: Mapování dat XML na buňky tabulky
Vytvořte SDT pro název a autora, namapujte je na data XML a připojte je k řádku:
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: Uložte dokument
Nakonec uložte dokument do určeného adresáře:
doc.Save(dataDir + "WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx");
Závěr
Pomocí těchto kroků jste úspěšně vytvořili tabulku s opakující se částí mapovanou na vlastní část XML pomocí Aspose.Words for .NET. To umožňuje dynamické generování obsahu na základě strukturovaných dat, díky čemuž je tvorba dokumentů flexibilnější a výkonnější.
FAQ
Co je to StructuredDocumentTag (SDT)?
SDT, také známý jako ovládací prvek obsahu, je ohraničená oblast v dokumentu, která se používá k obsahu strukturovaných dat.
Mohu ve vlastní části XML použít jiné datové typy?
Ano, svou vlastní část XML můžete strukturovat pomocí libovolných datových typů a podle toho je mapovat.
Jak přidám další řádky do opakující se části?
Opakující se část automaticky replikuje řádkovou strukturu pro každou položku v mapované cestě XML.