如果我想在PDF输出中为特定的关键字元素着色,以下代码可以在DITA中使用,但它实际上并不是我想要的,因为属性列表非常长。
<xsl:attribute-set name="keyword">
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="not(contains('|attr1|attr2|...|attrn|',
concat('|', @keyref, '|')))">
<xsl:value-of select="$kc-darkgrey"/>
</xsl:when>
<xsl:otherwise>inherit</xsl:otherwise>
</xsl:choose>
</xsl:attribute-set>
我想以不同的方式处理整个问题:我想使用包含如下元素的现有外部文件:
<map>
<title>mytitle</title>
<keydef keys="alt">
<topicmeta>
<keywords>
<keyword>Alt</keyword>
</keywords>
</topicmeta>
</keydef>
...
</map>
我的XML文件通过引用带keyref属性的keys属性来引用此外部文件。我的XML文件如下所示:
<keyword keyref="alt"/>
我的问题开头的代码排除了列出的值的所有keyref属性,但只要我有超过20个不同的属性值,恕我直言就太笨拙了。 有没有办法创建类似于以下内容的代码:只为其keyref属性引用/的等级关键字填充该外部文件中相应的键?