【发布时间】:2011-04-01 01:55:21
【问题描述】:
我目前正在编写一个进程,该进程使用 MSXML 库通过 VBScript 以编程方式从给定模板生成 Powerpoint 报告。我正在做的对 XML 的唯一操作是复制幻灯片、将数据插入 Excel 数据表以用于图表和几个标题文本文本替换。我正在测试 2 个在图表方面相同但在样式和布局上有所不同的模板。其中一个模板为我提供了一个工作输出 pptx 文件,而另一个在打开时显示此错误:
现在我想知道找到此错误原因的最佳/最简单方法是什么?我尝试在模板、输出和 Powerpoint 的更正输出之间区分 XML,但差异出现在许多不同文件的许多不同位置,这是一个非常漫长的过程。是否有任何检查/验证工具可以帮助我?我已经根据架构检查了 XML,但 XML 似乎是有效的。
我无法升级到 Microsoft 的 OpenXML SDK for .NET 等工具,并且该过程必须在我当前使用的 VBScript/MSXML 过程中实现。
【问题讨论】:
-
此错误纯粹与无效的 XML 有关。如果您编辑您的回复以在您附加的有效和无效的区域中显示输出,那么应该很容易判断问题出在哪里。但是,听起来您正在做一些更改(Excel、复制幻灯片和更新文本)。我建议一次做一个来测试导致问题的更新,然后发布该代码/XML。
-
不完全:我正在对两个输入演示进行完全相同相同的更改,因此仅显示我已更改的区域对我没有帮助
-
好吧,如果您确认它们完全相同,那么唯一可能的答案是您在编写代码后手动损坏了文件,例如您打开将 .pptx 保存为 .zip 并手动添加/编辑/删除某些内容。如果您的代码没有这样做并且您说您的代码没有这样做,那是 only 损坏的方式。如果您愿意在假设您的假设可能错误的前提下解决此问题,我很乐意提供帮助 - 我非常非常精通 PresentationML 和 DrawingML。
-
不,我的意思是我对两个文件所做的更改完全相同(即输入数据相同,而对数据表的更改完全相同)。不同之处在于原始文件,这似乎意味着一个文件中的某些内容与我所做的更改不兼容,尽管它适用于我尝试过的许多以前的示例。
-
@thegravytalker:对,我也是这么说的,但我想我说得不好。如果您正在编写完全相同的内容,但使用不同的模板,那么失败的模板将失败,因为您的 XML 对于它所期望的内容无效。这可能会发生 - 也许您正在写信给
title,模板希望您写信给ctrTitle。建议是一步一步地执行您的步骤,找出导致无效 XML 的原因,然后发布该 XML 加上有效的等效项。然后我们就会知道是什么导致了错误。
标签: xml debugging powerpoint office-2007 presentationml