Mail Merge с источником данных XML
При выполнении операции Mail Merge можно использовать различные источники данных, включая файл XML. Основным преимуществом использования XML является возможность определить иерархию прямо в документе, а затем просто передать ее в Aspose.Words.
В этой статье будет описано, как считывать данные из файла XML, а не непосредственно из базы данных, и использовать XML в качестве источника данных для выполнения операции Mail Merge.
Преимущества XML Как источника данных
XML источники данных очень удобны для хранения данных без дополнительных затрат, связанных с базой данных. Они отлично подходят для автономных приложений, где пользователям необходимо добавлять, редактировать и удалять данные, когда они не могут подключиться к базе данных.
XML данные могут быть хорошей альтернативой реляционным базам данных, особенно если вы работаете с веб-приложениями. Большинство веб-сервисов используют XML для обмена информацией. на современном рынке активно используются XML-ориентированные базы данных, и разработчики реляционных баз данных добавляют XML совместимость в свои продукты, чтобы обеспечить возврат базы данных XML.
Поскольку XML хранит данные в обычном текстовом формате, хранилище не зависит от платформы. Таким образом, данные можно легко экспортировать, импортировать или просто перемещать. XML популярен в качестве источника данных, поскольку он позволяет сохранить семантическое значение данных при обмене данными между различными приложениями.
Заполнение шаблона слияния данными из XML с использованием DataSet
XML является универсальным стандартом для обмена данными, а форматы документов Microsoft Word являются наиболее популярными форматами для шаблонов Mail Merge. Таким образом, возможность запуска Mail Merge из файла XML в документ шаблона Word стала общим требованием.
Microsoft Word не предоставляет прямого метода для работы с данными XML в качестве источника данных для операции Mail Merge, в то время как Aspose.Words позволяет выполнять операцию Mail Merge с данными из источника данных XML. Обратите внимание, что структура документа 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:
