1

私は docbook を使用しており、テーブル エントリにゼロ幅の文字を挿入するテンプレートを使用しています。これは良いことですが、テーブル エントリに要素が含まれている場合は、テンプレートを適用しないようにする必要があります<para><entry>それで、テンプレートを含まないすべてのものにテンプレートを適用する方法はあり<para>ますか?

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:d="http://docbook.org/ns/docbook">
<xsl:import href="urn:docbkx:stylesheet"/>

...

<xsl:template match="text()[parent::d:entry]">
    <xsl:call-template name="intersperse-with-zero-spaces">
        <xsl:with-param name="str" select="."/>
    </xsl:call-template>
</xsl:template>

...

4

2 に答える 2

2

<xsl:template match="d:entry[not(d:para)]">entry子を持たない要素に一致しますpara。子孫を持たない要素に<xsl:template match="d:entry[not(descendant::d:para)]">一致します。entrypara

または、投稿したテンプレートにを使用できます<xsl:template match="text()[parent::d:entry[not(d:para)]]">

于 2011-01-12T17:44:42.827 に答える
1
<xsl:template match="text()[parent::d:entry[not(.//d:para)]]">
    <xsl:call-template name="intersperse-with-zero-spaces">
        <xsl:with-param name="str" select="."/>
    </xsl:call-template>
</xsl:template>
于 2011-01-12T17:45:05.090 に答える