Verwendung von Klammern in xpath/xslt

Ich versuche, die Klammern verwenden, um Standardwert außer Kraft setzen Rangfolge der in einem xpath-Ausdruck innerhalb eines xslt-ohne Erfolg. Zum Beispiel:

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:exsl="http://exslt.org/common"
                extension-element-prefixes="exsl"
                version="1.0">

   <xsl:output encoding="utf-8" standalone="yes"/>

   <xsl:template match="/">
      <xsl:apply-templates select="*"/>
   </xsl:template>

   <xsl:template match="@* | node()">
      <xsl:copy>
         <xsl:apply-templates select="@* | node()"/>
      </xsl:copy>
   </xsl:template>

   <!--these should work but don't-->
   <xsl:template match="//(X|Y|Z)/AABBCC"/>
   <xsl:template match="(book/author)[last()]"/>

</xsl:stylesheet>

Visual Studio 2010 wird nicht kompiliert, diese Rückkehr:

Unerwartetes token '(' in Ausdruck. //-->(<-- X|Y|Z)/AABBCC

Unerwartetes token '(' in Ausdruck. -->(<-- book/author)[last()]

Noch das zweite Beispiel stammt aus der MSDN:

http://msdn.microsoft.com/en-us/library/ms256086.aspx

sowie zahlreiche Referenzen sagen Sie können Runde Klammern verwenden, auf diese Weise:

http://saxon.sourceforge.net/saxon6.5.3/expressions.html

http://www.stylusstudio.com/xsllist/200207/post90450.html

http://www.mulberrytech.com/quickref/XSLT_1quickref-v2.pdf

Ist das ein xpath 1.0 vs 2.0 Sache...oder ist es etwas, das mir fehlt? Wenn es eine xpath 2.0-Ding, ist es eine schöne xpath 1.0 Art und Weise zu tun, die gleiche Sache?

InformationsquelleAutor user109078 | 2011-05-26
Schreibe einen Kommentar