尝试使用XSLT2.0嵌入包含'&燃气轮机';HTML中的子选择器<;风格>;要素

尝试使用XSLT2.0嵌入包含'&燃气轮机';HTML中的子选择器<;风格>;要素,html,css,xslt,Html,Css,Xslt,My file base.css包含: ol > li { color: red; } 我尝试使用XSLT 2.0未解析文本(Saxon 9.1.0.2J)读取它并将其呈现到HTML输出中,如下所示: <style> <xsl:sequence select="unparsed-text(fn:iri-to-uri($CSS-BASE-FILE))"/> </style> 但是,unparsed-text()函数正在将HTML中的“>”转换为

My file base.css包含:

ol > li { color: red; }
我尝试使用XSLT 2.0未解析文本(Saxon 9.1.0.2J)读取它并将其呈现到HTML输出中,如下所示:

<style>
  <xsl:sequence select="unparsed-text(fn:iri-to-uri($CSS-BASE-FILE))"/>
</style>

但是,unparsed-text()函数正在将HTML中的“>”转换为“”,如下所示:

<style>
ol &gt; li { color: red; }
</style>

ol li{颜色:红色;}
…它的行为不像“ol>li”那样

如何使用XSLT将“>”字符呈现到元素中?我尝试过使用replace(…,“,”,“>”),但仍然会将“”呈现到HTML中


或者,是否有另一种方法可以指定CSS子选择器,而不必在HTML中嵌入文字'>'字符?

您使用的是输出方法XML、XHTML还是HTML

(3.0)规范规定:

HTML输出方法不得对脚本或样式元素的任何文本节点子体或元素节点子体的任何属性执行转义


所以我怀疑您没有使用HTML输出方法。

我认为问题在于
xsl:sequence
。为什么要将未分析文本的值呈现为序列而不是文字字符串?使用
xxl:value
会产生相同的结果。啊,但是你的评论把我带到了
禁用输出转义
,记录在。我需要的魔法是
。嗨,迈克。我正在使用method=“xhtml”。这就解释了它。XHTML输出方法通常遵循XML规则,但在一些特殊情况下,它的操作会有所不同。一般来说,我不确定为浏览器生成XHTML有多大意义:它更好地理解HTML,如果您需要XML表示,那么您可以将其与HTML一起生成。因此,Mike,请澄清您的意思:如果我使用,那么我就不需要在元素上使用disable output-escaping属性(这似乎对我来说很好)。对吗?谢谢。我检查了W3C 3.0规范,我没有检查Saxon 9.1实现,但原则上是的,使用method=“html”它应该可以工作。