[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] How to use the same expression in a match and a select
I have a stylesheet with a template and a for-each statement. Both select their elements by an expression which differs only in one part from each other. The template is: <xsl:template match="*[not(self::blockquote|self::center|self::BODY| self::body|self::div|self::dl|self::dt|self::HEAD|self::head|self::HTML| self::img|self::h1|self::h2|self::h3|self::h4|self::h5|self::h6| self::hr|self::html|self::idx:*|self::form| self::mbp:*[not(self::mbp:nu)]|self::mmc:*|self::ol|self::p|self::table| self::td|self::th|self::tr| self::ul)][preceding-sibling::node()[1][name()=name(current()) and string-join(@*,'xx') = string-join(current()/@*,'xx')]]" /> The for-each select is: <xsl:for-each select="following-sibling::node()[1][not(self::blockquote| self::center|self::BODY|self::body|self::div|self::dl|self::dt| self::HEAD|self::head|self::HTML|self::img|self::h1|self::h2|self::h3| self::h4|self::h5|self::h6|self::hr|self::html|self::idx:*|self::form| self::mbp:*[not(self::mbp:nu)]|self::mmc:*|self::ol|self::p|self::table| self::td|self::th|self::tr|self::ul)] [name()=name(current()) and string-join(@*,'xx') = string-join(current()/@*,'xx')]"> How can I reduce the redundancy and use the same expression in both statements, like in this pseudo code: <xsl:template match="*[$NO_BLOCK_ELEMENTS][preceding-sibling::node()[1][name()=name(current()) and $SAME_ATTRIBUTES]]" /> <xsl:for-each select="following-sibling::node()[1][$NO_BLOCK_ELEMENTS] [name()=name(current()) and $SAME_ATTRIBUTES]">
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|