[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] dynamic xpath from variable evaluate function is failing

Subject: [xsl] dynamic xpath from variable evaluate function is failing
From: M Balaji <msbalaji82@xxxxxxxxx>
Date: Mon, 22 Oct 2012 11:04:56 +0530

I need to construct the dynamic XPATH predicate from the input XML. I tried
with evaluate function, but  its not converting the String to XPATH
predicate. Can any one let me know how can I achieve this?

 Input: test.xml


<b test=3D=94(x=3DWindows)=94>content</b>

<b test=3D=94(z=3DUnix)=94>content</b>

<b test=3D=94(y=3DUnix) and (y=3DSolaris)=94>content</b>

<b test=3D=94(z=3DUnix) and (y=3DWindows7)=94>content</b>


Configuration/condition evaluation file (config.xml)


<condition name=3D=94x=94 value=3D=94Windows8=94/>

<condition name=3D=94z=94 value=3D=94Unix=94/>

<condition name=3D=94y=94 value=3D=94Solaris=94/>

<condition name=3D=94y=94 value=3D=94Windows7=94/>


XSLT: test.xsl

<xsl:variable name=3D"conlist"><s><xsl:for-each
select=3D"document('config.xml')// condition"><xsl:element

<xsl:template match=3D=94*[@test]=94>

<xsl:param name=3D"t" select=3D"concat('$', conlist,'//s','[',@test,']')"/>

<xsl:if test=3D'saxon:evaluate("$p1",$t)'>

<xsl:copy-of select=3D"."/>




I'm getting true for all above <b> elements

Expected result:

1st and 3rd <b> should not printed in the output (condition is failing)

Thanks in Advance,

Balaji. M

Current Thread