Mail MergeとXMLデータソース
Mail Merge操作を実行するときには、XMLファイルを含むさまざまなデータソースを使用できます。 XMLを使用する主な利点は、文書内で階層を定義し、それを単にAspose.Wordsに渡すことができることです。
この記事では、データベースから直接ではなくXMLファイルからデータを読み取り、Mail Merge操作を実行するためのデータソースとしてXMLを含める方法について説明します。
データソースとしてのXMLの利点
XMLデータソースは、データベースのオーバーヘッドなしでデータを格納するのに非常に便利です。 これらは、ユーザーがデータベースに接続できないときにデータを追加、編集、削除する必要があるオフラインアプリケーションに最適です。
XMLデータは、特にwebアプリケーションを使用する場合に、リレーショナルデータベースに代わる優れたデータソースになります。 ほとんどのwebサービスはXMLを使用して情報を交換します。 XML指向データベースは現在の市場で積極的に使用されており、リレーショナルデータベースの開発者は、データベースがXMLを返すように製品にXML互換性を追加してい
XMLはデータをプレーンテキスト形式で格納するため、ストレージはプラットフォームに依存しません。 従って、データは容易に輸出されるか、輸入されるか、または単に動かすことができる。 XMLは、異なるアプリケーション間で通信するときにデータの意味的な意味を保持する方法を提供するため、データソースとして一般的です。
DataSetを使用してXMLのデータをマージテンプレートに入力する
XMLはデータ交換のための普遍的な標準であり、Microsoft Wordドキュメント形式はMail Mergeテンプレートの最も一般的な形式です。 したがって、XMLファイルからWordテンプレート文書にMail Mergeを実行する機能は、一般的な要件となっています。
Microsoft WordはMail Merge操作のデータソースとしてXMLデータを操作する直接的な方法を提供しませんが、Aspose.WordsではXMLデータソースからのデータを使用してMail Merge操作を実行できます。Microsoft WordはMail Merge操作を実行するための直接的な方法を提供しません。 XML文書の構造も変更することができ、データは引き続き正しく読み取られることに注意してください。 これにより、異なるタイプのXMLドキュメントを簡単にマージできます。
ReadXML
メソッドを使用して、XMLスキーマとデータをDataSet
オブジェクトに読み込みます。 このオブジェクトは、mail mergeのデータソースとして使用されます。
次のXMLには、マージテンプレートに入力するために必要なデータが含まれています:
<?xml version="1.0" encoding="utf-8"?>
<customers>
<customer Name="John Ben Jan" ID="1" Domain="History" City="Boston"/>
<customer Name="Lisa Lane" ID="2" Domain="Chemistry" City="LA"/>
<customer Name="Dagomir Zits" ID="3" Domain="Heraldry" City="Milwaukee"/>
<customer Name="Sara Careira Santy" ID="4" Domain="IT" City="Miami"/>
</customers>
次のコード例は、XMLデータをDataSetにロードし、それをデータソースとして使用する方法を示しています:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(XMLMailMerge.class) + "MailMerge/"; | |
// Create the Dataset and read the XML. | |
DataSet customersDs = new DataSet(); | |
customersDs.readXml(dataDir + "Customers.xml"); | |
String fileName = "TestFile XML.doc"; | |
// Open a template document. | |
Document doc = new Document(dataDir + fileName); | |
// Execute mail merge to fill the template with data from XML using DataTable. | |
// Note that this class also works with a single repeatable region (and any nested regions). | |
// To merge multiple regions at the same time from a single XML data source, use the XmlMailMergeDataSet class. | |
// e.g doc.getMailMerge().executeWithRegions(new XmlMailMergeDataSet(xmlData)); | |
doc.getMailMerge().execute(customersDs.getTables().get("Customer")); | |
// Save the output document. | |
doc.save(dataDir + fileName); |
Mail Merge操作を実行する前に、テンプレートの違いに気付くことができます:

そして、Mail Merge操作を実行した後:
