Is it possible to have case-insensitive XPATH selector?
Number of attribute names defined in GCV.
Policy make query to eDir and receive back doc with number of attributes.

$current-node="cn"

When I put "filter" [@attr-name="CN"] it return right value.
When I put "filter" to the variable [@attr-name=$current-node], it return nothing.

$current-node="cn" and case-sensitive matching didn't work in this case. Attribute name is CN.
For another attributes can be combination of lower and uppercase characters (depend from attribute name definition in eDir).

I'm looking for case-insensitive XPATH match, that will work (potentially) for Cn/cN/cn/CN in this case, but really can take attribute name from Var and make case-insensitive XPATH match.


<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product version="?.?.?.?">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<query class-name="User" dest-dn="\TREE\gc\Staff\aauser" dest-entry-id="1975319" scope="entry">
<read-attr attr-name="cn"/>
</query>
</input>
</nds>
ReportND : Query from policy result
ReportND :
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product version="?.?.?.?">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<output>
<instance class-name="User" qualified-src-dn="O=gc\OU=Staff\CN=aauser" src-dn="\TREE\gc\Staff\aauser" src-entry-id="1975319">
<attr attr-name="workforceID">
<value timestamp="1453738898#53" type="string">XXX</value>
</attr>
<attr attr-name="CN">
<value naming="true" timestamp="1453738898#9" type="string">aauser</value>
</attr>
</instance>
</output>
</nds>
ReportND : Token Value: {<value> @naming = "true" @timestamp = "1453738898#9" @type = "string"}.
ReportND : Arg Value: {<value> @naming = "true" @timestamp = "1453738898#9" @type = "string"}.
ReportND : Action: do-set-local-variable("lvCurrentValue",scope="policy",token-xpath("$lvCurrentValueNS/../value")).
ReportND : arg-string(token-xpath("$lvCurrentValueNS/../value"))
ReportND : token-xpath("$lvCurrentValueNS/../value")
ReportND : Token Value: "aauser".
ReportND : Arg Value: "aauser".
ReportND : Action: do-set-local-variable("lvCurrentValue",scope="policy",token-xpath("$lvCurrentValueNS/../../attr[@attr-name="CN"]/value")).
ReportND : arg-string(token-xpath("$lvCurrentValueNS/../../attr[@attr-name="CN"]/value"))
ReportND : token-xpath("$lvCurrentValueNS/../../attr[@attr-name="CN"]/value")
ReportND : Token Value: aauser".
ReportND : Arg Value: "aauser".
ReportND : Action: do-set-local-variable("lvCurrentValue",scope="policy",token-xpath("$lvCurrentValueNS/../../attr[@attr-name=$current-node]/value")).
ReportND : arg-string(token-xpath("$lvCurrentValueNS/../../attr[@attr-name=$current-node]/value"))
ReportND : token-xpath("$lvCurrentValueNS/../../attr[@attr-name=$current-node]/value")
ReportND : Token Value: "".
ReportND : Arg Value: "".
ReportND : Action: do-if().
ReportND : Evaluating conditions.