是否可以直接从xslt设置文档类型属性的值?我的页面标题需要根据xslt结果进行更改,页面标题是通过属性设置的。
谷歌搜索了一段时间,但没有找到我要找的东西,所以以为我会问这里的umbraconians!
由于
答案 0 :(得分:1)
如上所述,XSLT是只读的,所以没有办法修改属性,使得在页面渲染时它会受到影响。
但是你可以在标题标签之间写一个额外的XSLT宏。此宏可以使用匹配模板。这允许您执行不同的操作,具体取决于您正在处理的XML节点。
由于数据存储在Umbraco 4.7.x中的方式,'文档类型别名'用作XML节点。这意味着我们可以匹配您的搜索页面(只要它具有自己的DocType)。
只需将“搜索”更新为文档类型的名称。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:umb="urn:umbraco.library"
exclude-result-prefixes="umb"
>
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:param name="currentPage"/>
<!-- Match Templates -->
<xsl:template match="/">
<xsl:apply-templates select="$currentPage" />
</xsl:template>
<!-- Search -->
<xsl:template match="search">
WooHoo! I'm the Search page!
</xsl:template>
<!-- All other pages -->
<xsl:template match="*[@isDoc]">
<xsl:value-of select="@nodeName" />
</xsl:template>
</xsl:stylesheet>
答案 1 :(得分:0)
据我所知,xslt是只读的。您可以有条件地更改显示为宏中标题的内容(如果是,然后显示属性中的标题,否则显示其他标题)或者如果您确实要设置属性,我建议使用剃刀脚本:{{3 }}