Сопоставить список XML с повторяющимся компонентом Word (Word 2013)

У меня есть XML-файл, который я сгенерировал из таблицы Excel. Этот xml представляет строки и столбцы электронной таблицы.

Например:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data-set xmlns="dummy.xsd">
    <record>
        <LastName>Smith</LastName>
        <Sales>16753</Sales>
        <Country>UK</Country>
        <Quarter>Qtr 3</Quarter>
    </record>
    <record>
        <LastName>Johnson</LastName>
        <Sales>14808</Sales>
        <Country>USA</Country>
        <Quarter>Qtr 4</Quarter>
    </record>
    <record>
        <LastName>Williams</LastName>
        <Sales>10644</Sales>
        <Country>UK</Country>
        <Quarter>Qtr 2</Quarter>
    </record>
<data-set>

Я хотел бы иметь возможность проходить через каждую строку и отображать каждую ее часть в текстовом компоненте, так что я могу отформатировать его в форматах слова.

Так что я бы хотел что-то вроде (с [[..]] символизирующим компоненты и структурой повтора)

[[
    [[
        [[Lastname]]   -    [[Sales]] - [[Contry]] - [[Repeat]]
    ]]
    [[
        [[Lastname]]   -    [[Sales]] - [[Contry]] - [[Repeat]]
    ]]
]]

Я уже открыл панель разработчика и загрузил свой xml с помощью функции (Добавить новую деталь...) панели сопоставления XML.

Когда я щелкаю правой кнопкой мыши на теге иерархии XML и выполняю команду * Вставить управление содержимым> Повторение, это создает компонент слова со следующим текстом:

"Введите любой контент, который вы хотите повторить, включая другие элементы управления контентом. Вы также можете вставить этот элемент управления вокруг строк таблицы, чтобы повторить части таблицы".

Если я добавлю в него некоторые поля записи (вставьте элемент управления содержимым> PlainText), он скажет:

"Элемент простого текста не может быть вставлен в текущий выбор"

Я также попытался поместить схему в *Developer > Add-Ins > XML Schema > Add Schema"

2 ответа

Решение

Может быть интересен мой пост в блоге http://www.docx4java.org/blog/2015/01/word-2013-repeatingsection-content-controls-ready-for-prime-time/(включая связанный документ, содержащий некоторые подсказки / уроки относительно панели картирования)

Более поздняя публикация i-have-my-xml-now-what указывает на сервис, который будет генерировать повторяющиеся структуры из вашего образца XML.

Я наконец добился этого, сделав так:

  1. Активируйте "Панель разработчика" в "Ленте"
  2. Откройте "Панель картирования XML"
  3. Выберите "Разработчик> Отображение XML> Пользовательская часть XML> Добавить новую часть (...)" и выберите XML
  4. Затем выберите файл XML в списке "Пользовательская часть XML" и щелкните элемент правой кнопкой мыши на элементе списка и выберите "Вставить управление содержимым> Повторение". Это должно создать вид "двойных тегов" в документе.
  5. Затем НЕ активируйте "Режим разработки" ("Разработчик> Режим разработки") (иначе он будет жаловаться)
    • Поместите курсор мыши внутри "двойных тегов", которые были созданы на странице (вместо "Введите любой контент, который вы хотите повторить, включая другие элементы управления контентом. Вы также можете вставить этот элемент управления вокруг строк таблицы, чтобы повторить части стола. ")
    • И щелкните правой кнопкой мыши поле элемента в "Панели сопоставления XML" и выберите "Вставить элемент управления содержимым> Простой текст". Это создаст новый "одиночный тег", представляющий поле на странице слова (вложенный в "двойной тег". "которые представляют" foreach ")
    • Выключите режим проектирования (и снова включите и выключите, если необходимо). Элементы должны отображаться и содержать поле, которое было вставлено

Единственная проблема в том, что это очень медленно. Я попытался отобразить XML на 100 строк (только с 2 столбцами) и занял почти 5 минут.

Другие вопросы по тегам