В связанном файле xaml js (например, xaml_1.js) есть функция handleMouseUp, которая считывает идентификатор формы из строки «name» (XAML), а затем вызывает OnShapeClick в frameset.js. Этот метод, который является общим для всех js-based типов Save as web output, затем вызывает другие методы для заполнения таблицы данных или получения гиперссылок, найденных в data.xml. Если вы посмотрите на функцию FindShapeXML в frameset.js, вы увидите, что она получает соответствующие данные на основе идентификаторов страницы и формы (обратите внимание, что идентификаторы формы уникальны для страницы в соответствии с самим Visio).
С точки зрения создания текста с привязкой к данным или динамической формы один способ обхода глифов, который подчеркивает @slfan, не позволяет выводить текст. Например, перед запуском Save As Web в Visio вы можете пропустить все фигуры и установить для них HideText ShapeSheet ячейку в true. Это предотвратит создание всех глифов xaml, и вы все равно получите доступ к текстовой строке в файле data.xml. Я предполагаю, что тогда вы не выиграете от правильного масштабирования шрифта, но это зависит от вашего сценария. Если было действительно важно получить масштаб правильно, вы могли бы проанализировать атрибут RenderTransform (который описан в синтаксисе атрибута, а не синтаксисе элемента свойства) элементов глифа.
Символы есть (я угадываю), потому что он отражает то, как Visio работает в приложении, то есть в Visio вы можете выбирать отдельные символы в тексте фигуры и применять разные шрифты и форматирование, но если вам это не нужно, У меня возникнет соблазн сорвать коллекцию глифов и просто использовать TextBlock, как предлагает @slfan.
Так что, в основном, мне нужно проанализировать XML-файл, чтобы получить идентификаторы элементов, где я должен вводить новый объект (например,текстовый блок)? – froeschli