/ / ustaw oś domyślną dla całego select - xml, xslt, xpath

ustaw oś domyślną dla całego select - xml, xslt, xpath

Chcę ustawić oś domyślną dla całości Wybierz.

Po przeczytaniu powyższego zdania wiem, że jest dość niejasna, więc tutaj jest dłuższe wyjaśnienie:

Znajduję sposób na skrócenie tego fragmentu kodu:

<xsl:variable name="v">
<xsl:choose>
<xsl:when test="self::name|self::history|self::area|self::title">qwerty</xsl:when>
</xsl:choose>
</xsl:variable>

Mówię o części: self :: name | self :: history | self :: area | self :: title czy istnieje sposób skrócenia go do czegoś takiego: self: :( name | history | area | title) ?

czy cokolwiek innego moglibyście zaproponować?

Odpowiedzi:

0 dla odpowiedzi № 1

Inne podejście: gdy zobaczysz xsl: wybierz, zapytaj, czy możesz zamiast tego użyć xsl: apply-templates. Dlaczego nie:

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

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

0 dla odpowiedzi nr 2

Jeśli elementy, o których mowa, są częścią grupy podstawiania w schemacie, możesz napisać self::schema-element(e) gdzie e jest szefem grupy substytucji. Jest to bardzo przydatna technika, w której masz dużą rodzinę wymiennych elementów. W XSD 1.1 element może należeć do więcej niż jednej grupy podstawień, więc można nawet wprowadzić grupy zastępcze specjalnie do tego celu.


-1 dla odpowiedzi nr 3
select="self::name/following-sibling::*"

jest możliwe...