XPath:将属性与外部文件中的其他属性进行比较

时间:2017-06-14 15:29:32

标签: xml xpath dita

如果我想在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属性引用/的等级关键字填充该外部文件中相应的键?

0 个答案:

没有答案
相关问题