[Home] [By Thread] [By Date] [Recent Entries]

  • To: xml-dev@l...
  • Subject: Dynamically creating a pattern for xsl:apply-templates select
  • From: Mark Heieis <mark.heieis@s...>
  • Date: Thu, 29 Jul 2004 15:51:07 -0700
  • User-agent: Mozilla Thunderbird 0.7.2 (Windows/20040707)

I have some challenges to solve:

I need to parse a string that contains n number of args, which is in the 
form of  "arg1, arg2,...argn". The args define either an attribute or 
element value. The goal is to prune a large tree using the given arguments.

I want to dynamically create a pattern for the following using the above 
input string, such that

    <xsl:apply-template select=path/node[@name=$arg1 or @name=$arg2 or 
@name=$argn]/>

is made to look something like

    ...
    <xsl: variable name="pattern">@name=$arg1 or @name=$arg2 or 
@name=$argn</xsl:pattern>
or
    <xsl: variable name="pattern">@name='$arg1 | $arg2 | 
$argn'</xsl:pattern>
   ....

which would then be used as
    ...
    <xsl:template match='somecondition''>
        <xsl:apply-templates select=path/node[$pattern]/>
   </xsl:template>

The questions are:
Can the select attribute accept pattern defined by a variable? So far I 
haven't been able to make it work.
If yes, how should it be constructed based on the given input string?
If no, what would be an approach to filter a tree based on the given input?
Or even if yes, is there a better way to filter a large tree?

Thanks in advance.


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member