В настоящее время я пишу процесс, который программно генерирует отчеты Powerpoint из заданного шаблона с использованием библиотеки MSXML через VBScript. Единственное манипулирование XML, которое я делаю, - это дублировать слайды, вставлять данные в таблицы данных Excel для диаграмм и пару текстовых замеров на основе текста. Я тестирую 2 шаблона, которые идентичны в плане графиков, но отличаются стилями и макетами. Один из шаблонов дают мне рабочий файл вывод PPTX в то время как другие показывает эту ошибку при открытии:Исправление ошибок Powerpoint 2007 XML
Теперь то, что я хочу знать, что это лучший/простой способ найти причину этой ошибки? Я попытался различить XML между шаблоном, выводом и исправленным выходом Powerpoint, но различия встречаются во многих разных местах во многих разных файлах, что очень длительный процесс. Есть ли инструменты проверки/проверки, которые могли бы помочь мне здесь? Я проверил XML по сравнению с схемами, но XML кажется действительным.
Я не могу перейти на такие инструменты, как Microsoft OpenXML SDK для .NET, и этот процесс должен быть реализован в процессе VBScript/MSXML, который я использую в настоящее время.
Эта ошибка связана исключительно с неверным XML. Если вы отредактируете свой ответ, чтобы показать результат в областях, которые вы добавили в тот, который работает, и тот, который этого не делает, достаточно просто рассказать, где проблема. Однако, похоже, что вы делаете ряд изменений (Excel, дублирование слайдов и обновление текста). Я бы рекомендовал делать по одному за раз, чтобы проверить, какое обновление вызывает проблему, а затем опубликовать этот код/XML. –
не совсем: я делаю * точно * те же изменения для обоих входных презентаций, поэтому показ только областей, которые я изменил, не поможет мне – 2010-08-20 07:43:12
Хорошо, если вы подтвердите, что они * точно такие же *, то возможно только ответ: вы вручную развращаете файл после написания вашего кода, например, вы открываете сохраненный .pptx как .zip и добавляете/редактируете/удаляете что-то вручную. Это * только * способ, которым он был бы поврежден, если ваш код не делает этого, и вы говорите, что ваш код этого не делает. Если вы захотите устранить это из-за того, что ваше предположение может быть неправильным, я с удовольствием помогу - я очень, очень хорошо разбираюсь в PresentationML и DrawingML. –