【问题标题】:Is it possible: Bypassing XSLT conversion with script是否可能:使用脚本绕过 XSLT 转换
【发布时间】:2013-11-12 00:17:33
【问题描述】:

就需要动态 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. 我没有太多时间来构建应用程序的这个功能:(

因此,考虑到所有这些,并从this 中汲取灵感 链接,导出我的平面文件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,但鉴于项目情况和时间框架,我不确定我是否有时间学习所有必要的知识。

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

【问题讨论】:

标签: ruby xml xslt outlook


【解决方案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 更擅长帮助您解决离散编程问题。尝试一下并分享您的代码。

【讨论】:

  • 感谢您的 cmets。经过更多研究后,我认为我需要的转换次数(转换为层次结构、转换为 html 等)意味着我真的只需要了解更多有关 XSLT 的信息。
猜你喜欢
  • 1970-01-01
  • 2015-09-26
  • 2018-12-21
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-05
  • 2011-04-06
相关资源
最近更新 更多