【问题标题】:XSL Writing html code directly in docbookXSL 直接在 docbook 中编写 html 代码
【发布时间】:2010-10-23 09:13:28
【问题描述】:

我是 docbook 的新手,但找不到一种像样的方法来直接在 docbook xml 结构中编写一些 html 代码。我能找到的最好的是 dbhtml-include,但它需要一个单独的 html 文件来解析。

可以直接写几行html吗?

我真正想做的是在 docbook 中使用 mathjax 编写数学。不过,可能有更聪明的方法来做到这一点。

感谢您的帮助。

【问题讨论】:

  • 好问题,+1。请参阅我的答案以获取解释和示例。

标签: html xml xslt docbook


【解决方案1】:

能不能写几个html 直接换行吗?

在 XSLT 中“直接编写”总是可能的,您可以修改任何 XSLT 样式表,包括 DocBook 的样式表,以这样做。下面是一个简单的例子:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/">
   <html>
     Hello, World!
   </html>
 </xsl:template>
</xsl:stylesheet>

但是,交叉分析 XSLT 和 html 是一种反模式,会导致难以阅读且难以维护的类似意大利面条的代码。

这解释了 Norm Walsh 对dbhtml-include 的设计决策。

一个非常强大的设计模式也是有一个类似于表单的 html,其中包含一些 XML 元素,这些元素在转换后会被特定内容替换——fill-in-the -空白模式

【讨论】:

  • 谢谢,我觉得这不是标准和坏习惯,因为我发现在谷歌上的点击量有限。我知道 XSLT 选项,但在使用它之前必须考虑清楚。问题是我必须为我添加的每个数学图形添加一个模板,这相当多。
  • 我会暂时不回答,看看其他人是否有更好的建议,否则我会将你的标记为最佳。
  • @Bo,是的,自定义 DocBook 样式表可能需要做很多工作
  • 非常感谢 Dimitre,事实上,使用这样的模板可以轻松完成我想要的工作。我只需要通过一些实验来验证它,它工作正常。
【解决方案2】:

FWIW,我通常只生成一个准系统 HTML 页面,然后使用 Sitemesh 之类的东西对其进行自定义。从 XML -> XSL -> 完全自定义的 HTML 开始通常是一件非常痛苦的事情,除非您是找出人类所见过的一些最复杂的 XSLT 样式表的大师。

【讨论】:

  • 我同意,但在这种情况下,我使用的是 boost quickbook(它在下面使用 docbook),它已经为我完成了所有工作。我只需要能够编写 mathjax 公式,我现在可以使用不到 10 行代码。这对我来说是一个足够好的解决方案。
【解决方案3】:

一些建议; 如果您有 XML 和 XSL,您可以通过 XEP 轻松生成 HTML。我觉得太有用了。有任何问题可以访问RenderX论坛:http://cooltools.renderx.com 您也可以从 (http://www.renderx.com/tools/index.html) 尝试 XEP 的试用版

【讨论】:

    猜你喜欢
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2012-07-11
    相关资源
    最近更新 更多