Xml 使轴成为整个选择的默认轴

Xml 使轴成为整个选择的默认轴,xml,xslt,xpath,Xml,Xslt,Xpath,我想使轴成为整个选择的默认轴 我自己读过上面的句子后,我知道它很不清楚,所以这里有一个较长的解释: 我正在寻找缩短这段代码的方法: <xsl:variable name="v"> <xsl:choose> <xsl:when test="self::name|self::history|self::area|self::title">qwerty</xsl:when>

我想使轴成为整个选择的默认轴

我自己读过上面的句子后,我知道它很不清楚,所以这里有一个较长的解释:

我正在寻找缩短这段代码的方法:

<xsl:variable name="v">
            <xsl:choose>
                <xsl:when test="self::name|self::history|self::area|self::title">qwerty</xsl:when>
            </xsl:choose>
        </xsl:variable>
我说的是:self::name | self::history | self::area | self::title有没有办法把它缩短成这样:self::name | history | area | title

或者你们能提出什么建议

select="self::name/following-sibling::*"

有可能…

如果所讨论的元素是架构中替换组的一部分,那么您可以编写self::schema elemente,其中e是替换组的头。这是一种非常有用的技术,其中有大量可互换的元素。在XSD 1.1中,元素可以属于多个替换组,因此您甚至可以专门为此目的引入替换组。

另一种方法:每当看到xsl:choose时,询问是否可以使用xsl:apply模板。为什么不:

<xsl:template match="name|history|area|title" mode="zingo">qwerty</xsl:template>
<xsl:template match="*" mode="zingo"/>

<xsl:apply-templates select="self::*" mode="zingo"/>

这是可能的,但它的意思与原来的表达完全不同,所以我不知道你为什么要提出它。顺便问一下,你有什么理由这么做::*而不是仅仅一个。还是self::node?