1

寻找有关需要动态 html 文档(未嵌入浏览器)的项目的建议。

我是 XML 的新手,很难理解 XSLT 转换。更复杂的是,我在 MS Office Suite 电子邮件自动化的背景下工作。

希望能够构建来自不同 xsl/html 模板的动态电子邮件,这些模板可以合并在一起并针对每个收件人进行自定义。

我已经冒险在 MS Word 中创建 XSLT,但似乎还有很多障碍。

  1. 我是一名 VBA 程序员,并且只有 Visual Studio 的 Express 版本。
  2. 通过 Word 的 VBA 语言操作 XML 的文档不是很好。
  3. Word 生成的 XSLT 令人费解。我可以看到一个典型的 XSL 文件并了解其中的要点。不能对 Word 版本说同样的话。(不久前,我看到一篇文章,其中 O'Reilly 书籍 Office XML 2003 的作者抨击 MS 对 XML 编程的支持
  4. 我正在处理从 MS Access 导出的平面文件 XML。将它们转换为模板中表示的层次结构似乎很困难。
  5. 我没有太多时间来构建应用程序的这个功能:(

因此,考虑到所有这些,并从此链接中汲取灵感 导出我的平面文件 xml 并使用 ruby​​ 等脚本语言生成动态 html 文件是否可行?

如果是这样,这种方法是否有任何指导方针和/或资源?

我在想类似...

  • 将 XML 文件转换为原生 ruby​​ 数据结构。
  • 在 HTML 模板中调用变量,例如<p>Greetings <div id="recipient"></div>!</p>(这将是父节点,附加到“收件人”哈希、数组等)
  • 然后根据模板中可用的和属性获取表定义,<table class="my-template"> <tr> <th id="action-item">Action Item</th> <th id="due-date">Due Date</th> </tr> <tr> <td></td> <td></td> </tr> </table> 并构建完整的表。classid

好主意,坏主意?不想偷懒,但不想走 MS Office - XSLT - .Net 框架 - 有限的 VBA 文档路线而不探索可能的替代方案。

也不反对 XLST,但鉴于项目情况和时间框架,我不确定我是否有时间学习所有必要的知识。

如果您认为我错了,请告诉我!

4

1 回答 1

1

谨防将一种 X 技术与另一种混为一谈。

XML是一种标记语言,旨在以结构化和有意义的方式表示您的数据。

XSLT提供了一种转换 XML 文档的方法。当然,XSLT 样式表本身是用 XML 编写的,这相当令人困惑。但是这样做有一个明显的优势:如果 XSLT 是 XML,您可以轻松地将 XSLT 转换为另一个 XSLT。XSLT 样式表由 XSLT 处理器(如 Saxon)读取并应用于 XML 文档。此外,“模板”仅存在于 XSLT 中,一般而言不存在于 XML 文件中。

因此,我会说您将 XSLT 与 XML 混淆了。MS Word 可以将文件存储为XML (OpenXML),而这正是您所看到的。当然,您可以从这些 OpenXML 文件中获取任何信息,但如果您是 XSLT 的新手,我建议您从更简单的开始。

不过,XSLT 是将 XML 转换为 HTML 的不错选择。如果您了解 Ruby(或 Python、Perl 或 Java...),那么还有 XML 函数,例如 DOM。

此外,这是一个相当概念性的问题 - 而 SO 更擅长帮助您解决离散编程问题。尝试一些东西并分享你的代码。

于 2013-11-12T15:05:11.933 回答