[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Applying templates only to certain part of the tree
X-Originating-IP: [212.252.1.73] From: "Nuri Besen" <nb_news@xxxxxxxxxxx> Date: Wed, 17 May 2000 08:28:56 EDT Sender: owner-xsl-list@xxxxxxxxxxxxxxxx Precedence: bulk Reply-To: xsl-list@xxxxxxxxxxxxxxxx Content-Type: text/plain; format=flowed Content-Length: 831 Hello, I am trying the following, and it does not compile but: <xsl:template match="/"> <xsl:apply-templates select="main and not(main//TestSec)"/> <xsl:apply-templates select="main//TestSec"/> </xsl:template> where I want to apply the templates for everything under the "main" section but excluding the TestSec. <xsl:apply-templates takes a select expression that must return a node set. "main and not(main//TestSec)" is a boolean valued expression that just returns true or false. The following works but applies the TestSec templates twice, naturally. <xsl:template match="/"> <xsl:apply-templates select="main"/> <xsl:apply-templates select="main//TestSec"/> </xsl:template> What is the correct method to exclude a part of the tree? It depends what you want to do select="main//*[not(self::TestSec)" and select="main//TestSec" do what you are apparently trying to do, which is select all nodes below main, firstly those that are not called TestSec and then those that are. However I suspect that isn't what you want to do. It flattens the document tree, and if any template for any node that is selected by select="main//*[not(self::TestSec)" calls xsl:apply-templates in the usual way, selecting its children, then TestSec will end up being processed twice anyway. If you want to process the tree missing out TestSec, then process them later you probably want <xsl:apply-templates select="main"/> <xsl:for-each select="main//TestSec"> ... </xsl:for-each> ... <xsl:template match="TestSec"/> David XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|