问题:我想将所有嵌套的无序列表切换为短划线而不是子弹。
我相信选择这些嵌套列表项的XPath表达式是:// ul / li / ul // li
我认为这是适合修改的模板:
<xsl:template match="*[contains(@class, ' topic/ul ')]/*[contains(@class, ' topic/li ')]">
<fo:list-item xsl:use-attribute-sets="ul.li">
<fo:list-item-label xsl:use-attribute-sets="ul.li__label">
<fo:block xsl:use-attribute-sets="ul.li__label__content">
<fo:inline>
<xsl:call-template name="commonattributes"/>
</fo:inline>
<xsl:call-template name="insertVariable">
<xsl:with-param name="theVariableID" select="'Unordered List bullet'"/>
</xsl:call-template>
</fo:block>
</fo:list-item-label>
<fo:list-item-body xsl:use-attribute-sets="ul.li__body">
<fo:block xsl:use-attribute-sets="ul.li__content">
<xsl:apply-templates/>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</xsl:template>
它引用了名为“Unordered List Bullet”的en.xml中的变量:
<variable id="Unordered List bullet">•</variable>
我已尝试将该变量调用包装为引用另一个变量“Unordered List Dash”(如果它是嵌套的)。我还是有点挂了。什么是最优雅的方法?我应该为这些嵌套项设置一个额外的模板吗?
我正在使用DITA-OT 1.5.4。
答案 0 :(得分:6)
当无序列表是任何其他列表类型的子节点(包括任务步骤)时,此列表模板覆盖使用破折号格式化所有无序列表项,因此您可能需要在xsl:when test属性中优化XPath表达式。
<xsl:template match="*[contains(@class, ' topic/ul ')]/*[contains(@class, ' topic/li ')]">
<fo:list-item xsl:use-attribute-sets="ul.li">
<fo:list-item-label xsl:use-attribute-sets="ul.li__label">
<fo:block xsl:use-attribute-sets="ul.li__label__content">
<fo:inline>
<xsl:call-template name="commonattributes"/>
</fo:inline>
<xsl:choose>
<xsl:when test="ancestor::*[contains(@class, ' topic/li ')]">
<xsl:call-template name="insertVariable">
<xsl:with-param name="theVariableID" select="'Unordered List dash'"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="insertVariable">
<xsl:with-param name="theVariableID" select="'Unordered List bullet'"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:list-item-label>
<fo:list-item-body xsl:use-attribute-sets="ul.li__body">
<fo:block xsl:use-attribute-sets="ul.li__content">
<xsl:apply-templates/>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</xsl:template>
这是来自strings文件的变量。
&LT; variable id="Unordered List dash">-</variable>