カスタム XML パーツにマップされたテーブル繰り返しセクションの作成

導入

このチュートリアルでは、Aspose.Words for .NET を使用して、カスタム XML パーツにマップされた繰り返しセクションを含むテーブルを作成するプロセスについて説明します。これは、構造化データに基づいてドキュメントを動的に生成する場合に特に便利です。

前提条件

始める前に、以下のものを用意してください。

  1. Aspose.Words for .NETライブラリがインストールされています。Aspose ウェブサイト.
  2. C# と XML の基本的な理解。

名前空間のインポート

プロジェクトに必要な名前空間を必ず含めてください。

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

ステップ 1: Document と DocumentBuilder を初期化する

まず、新しいドキュメントを作成し、DocumentBuilder:

string dataDir = "YOUR DOCUMENT DIRECTORY";

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

ステップ2: カスタムXMLパーツを追加する

ドキュメントにカスタム XML パーツを追加します。この XML には、テーブルにマップするデータが含まれています。

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

ステップ3: テーブル構造を作成する

次に、DocumentBuilderテーブルヘッダーを作成するには:

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

ステップ4: 繰り返しセクションを作成する

作成するStructuredDocumentTag(SDT) を繰り返しセクションに作成し、XML データにマップします。

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

ステップ5: 繰り返しセクションアイテムを作成する

繰り返しセクション アイテムの SDT を作成し、それを繰り返しセクションに追加します。

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

ステップ 6: XML データをテーブル セルにマップする

タイトルと著者の SDT を作成し、それらを XML データにマップして、行に追加します。

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

ステップ7: ドキュメントを保存する

最後に、ドキュメントを指定されたディレクトリに保存します。

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

結論

これらの手順に従うことで、Aspose.Words for .NET を使用して、カスタム XML パーツにマップされた繰り返しセクションを含むテーブルを正常に作成できました。これにより、構造化データに基づく動的なコンテンツ生成が可能になり、ドキュメント作成がより柔軟かつ強力になります。

よくある質問

StructuredDocumentTag (SDT) とは何ですか?

SDT (コンテンツ コントロールとも呼ばれます) は、構造化データを格納するために使用されるドキュメント内の境界領域です。

カスタム XML 部分で他のデータ型を使用できますか?

はい、カスタム XML パーツを任意のデータ型で構造化し、それに応じてマップすることができます。

繰り返しセクションに行を追加するにはどうすればよいですか?

繰り返しセクションは、マップされた XML パス内の各項目の行構造を自動的に複製します。