尝试使用以下代码在博客卷中插入Google广告
<xsl:if test="position() = 3">
<object data="/frontpage_blogroll_center_top_728x90"
width="735"
height="95" ></object>
</xsl:if>
由于某种原因,结束标记</object>
不会在HTML中呈现并导致错误。无论如何要解决这个问题吗?
答案 0 :(得分:4)
:
之间的XML没有区别(词法除外)<object></object>
和
<object/>
这些代表完全相同的XML元素,不同的XSLT处理器可以自由选择上述两种表示中的任何一种。
如果HTML中确实需要长格式的元素,可以通过以下方式实现:
使用<xsl:output method="xhtml"/>
。 xhtml
方法仅适用于XSLT 2.0。
使用<xsl:output method="html"/>
。 XSLT转换的结果将是HTML文档(而不是XML)。
使用技巧,如:
<object data="/frontpage_blogroll_center_top_728x90" width="735" height="95" >
<xsl:value-of select="$vsomeVar"/>
</object>
其中$vsomeVar
没有值并且不会导致输出任何内容,但会欺骗XSLT处理器认为是输出的东西,从而输出元素的长格式。< / p>
答案 1 :(得分:2)
使用html
输出方法。
此样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:if test="true()">
<object data="/frontpage_blogroll_center_top_728x90"
width="735"
height="95" ></object>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
输出:
<object height="95"
width="735"
data="/frontpage_blogroll_center_top_728x90"></object>
使用MSXSL,Xalan,Oracle,Saxon,Altova,XQSharp进行测试。