【问题标题】:DOCTYPE declaration getting lost when using XSL使用 XSL 时 DOCTYPE 声明丢失
【发布时间】:2010-04-20 14:59:50
【问题描述】:

我的 XSL 的输入是一个 XHTML。应用 XSL 后,输入 XHTML 中出现的 DOCTYPE 声明会在输出中丢失。我是否可以选择使用 XSL 在输出中复制/保留 DOCTYPE 声明。我使用的 XSL 处理器是 SAXON。

【问题讨论】:

  • 我很乐意支持在 xslt-1.0 中自动执行此操作的答案。

标签: xslt


【解决方案1】:

添加输出指令:

<xsl:output 
  doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
  doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>

顺便说一句,输出指令堆栈 - 你可以拥有任意数量的指令。

【讨论】:

  • 如果输入 xhtml 有 DOCTYPE ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" rel="nofollow" target="_blank">w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 如果我已经设置了 DOCTYPE 如上所示然后我最终将输出的 DOCTYPE 设置为 //W3C//DTD XHTML 1.0 Strict//EN" "w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 有没有办法获得的 DOCTYPE输入输出?
  • @Rachel:嗯……不容易。我不知道在 XSLT 1.0 中有一种方法可以做到这一点。您使用什么 XSLT 版本?此页面表明在 XSLT 2.0 中有一种方法:biglist.com/lists/lists.mulberrytech.com/xsl-list/archives/…
  • 我使用 XSL 2.0。将检查链接。
  • 我可以获取 2 info doctype public 和 doctype system 作为输入参数,并在输出中动态设置它们,如下所示? 我得到的输出是: 我在输出中得到变量名如上图所示。我错过了什么吗?
  • @Rachel:是的,你遗漏了一些东西,即触发变量评估的花括号:&lt;xsl:output doctype-public="{$doctype.public}" doctype-system="{$doctype.system}" /&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 2015-03-19
  • 1970-01-01
相关资源
最近更新 更多