1

問題:すべてのネストされた順序付けられていないリストを黒丸ではなくダッシュに切り替えたいです。

これらのネストされたリスト項目を選択する 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">&#x2022;</variable>

ネストされている場合、その変数呼び出しをラップして、別の変数「Unordered List Dash」を参照しようとしました。私はまだ少しハングアップしています。最も優雅なアプローチは何ですか?代わりに、これらのネストされたアイテム用に追加のテンプレートを設定する必要がありますか?

DITA-OT 1.5.4 を使用しています。

4

1 に答える 1

6

このリスト テンプレート オーバーライドは、順序付けされていないリストがタスク ステップを含む他のリスト タイプの子である場合、ダッシュを使用してすべての順序付けられていないリスト項目を書式設定するため、xsl:when テスト属性の 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>

そして、ここに文字列ファイルの変数があります。<variable id="Unordered List dash">-</variable>

于 2013-03-06T17:39:48.380 に答える