Issues using parameters with namespaces

George Joseph via xslt <[email protected]> Mon, 28 Feb 2022 10:50:38 -0700
Newsgroups gmane.comp.gnome.lib.xslt
Message-ID <CAP=uFEtt8vA9h9Y9iO701o7Na-Cwpi9wCSxZcfAORu7Aq3HcNw@mail.gmail.com>
--===============2492222001104560303==
Content-Type: multipart/related; boundary="000000000000ab5a6e05d917b084"

--000000000000ab5a6e05d917b084
Content-Type: multipart/alternative; boundary="000000000000ab5a6d05d917b083"

--000000000000ab5a6d05d917b083
Content-Type: text/plain; charset="UTF-8"

Greetings,

I've been having a heck of a time trying to pass a parameter
to xsltApplyStylesheet
that has namespaces in the xpath expression.

For example (abbreviated):
stylesheet:
<xsl:stylesheet xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" ...>
<xsl:param name="path" select="/*" />
 <xsl:template match="/">
<xsl:apply-templates select="$path"/>
</xsl:template>

xml:
<presence xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" ...>
<dm:device/>
...

$ xsltproc --param path "//dm:device" pidf_lo.xslt pidf_lo_test.xml
XPath error : Undefined namespace prefix
runtime error
Evaluating user parameter path failed

if I hard code that select="//dm:device"  it works fine.

Finally I did find a workaround by calling xsltNewTransformContext() then
iterating
over the nsDefs in the stylesheet document and calling xmlXPathRegisterNs on
ctxt->xpathCtxt for each nsDef.

I would have thought this would have been done automatically though.  Did I
miss something or is there a better way to do this?

Thanks!






-- 
George Joseph
Asterisk Software Developer
Check us out at www.sangoma.com and www.asterisk.org
[image: image.png]

--000000000000ab5a6d05d917b083
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Greetings,<div><br></div><div>I&#39;ve been having a heck =
of a time trying to pass a parameter to=C2=A0xsltApplyStylesheet</div><div>=
that has namespaces in the xpath expression.=C2=A0=C2=A0</div><div><br></di=
v><div>For example (abbreviated):</div><div>stylesheet:</div><div>&lt;xsl:s=
tylesheet xmlns:dm=3D&quot;urn:ietf:params:xml:ns:pidf:data-model&quot; ...=
&gt;</div><div>&lt;xsl:param name=3D&quot;path&quot; select=3D&quot;/*&quot=
; /&gt;<br></div><div>=C2=A0&lt;xsl:template match=3D&quot;/&quot;&gt;<br>	=
	&lt;xsl:apply-templates select=3D&quot;$path&quot;/&gt;<br>	&lt;/xsl:templ=
ate&gt;<br></div><div><br></div><div>xml:</div><div>&lt;presence xmlns:dm=
=3D&quot;urn:ietf:params:xml:ns:pidf:data-model&quot; ...&gt;</div><div>&lt=
;dm:device/&gt;</div><div>...</div><div><br></div><div>$=C2=A0xsltproc --pa=
ram path &quot;//dm:device&quot; pidf_lo.xslt pidf_lo_test.xml</div><div>XP=
ath error : Undefined namespace prefix<br>runtime error<br>Evaluating user =
parameter path failed<br clear=3D"all"><div><br></div><div>if I hard code t=
hat select=3D&quot;//dm:device&quot;=C2=A0 it works fine.</div><div><br></d=
iv><div>Finally I did find a workaround by calling=C2=A0xsltNewTransformCon=
text() then iterating</div><div>over the nsDefs in the stylesheet document =
and calling=C2=A0xmlXPathRegisterNs on</div><div>ctxt-&gt;xpathCtxt for eac=
h nsDef.</div><div><br></div><div>I would have thought this would have been=
 done automatically though.=C2=A0 Did I</div><div>miss something or is ther=
e a better way to do this?</div><div><br></div><div>Thanks!</div><div><br><=
/div><div><br></div><div><br></div><div><br></div><div><br></div><div><br><=
/div>-- <br><div dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gm=
ail_signature"><div dir=3D"ltr"><div><div dir=3D"ltr"><div dir=3D"ltr"><div=
 dir=3D"ltr"><div dir=3D"ltr" style=3D"font-size:12.8px"><div dir=3D"ltr" s=
tyle=3D"font-size:12.8px"><div style=3D"font-family:tahoma,sans-serif;font-=
size:small"><span style=3D"color:rgb(7,55,99)">George Joseph</span><br></di=
v></div><div dir=3D"ltr" style=3D"font-size:small"></div><div style=3D"font=
-family:tahoma,sans-serif;font-size:small"><span style=3D"color:rgb(7,55,99=
)">Asterisk Software Developer</span><br></div><div style=3D"font-family:ta=
homa,sans-serif;font-size:small"><font color=3D"#073763">Check us out at</f=
ont>=C2=A0<a href=3D"http://www.sangoma.com/" style=3D"color:rgb(17,85,204)=
" target=3D"_blank">www.sangoma.com</a>=C2=A0and=C2=A0<a href=3D"http://www=
.asterisk.org" target=3D"_blank">www.asterisk.org</a><br></div><div style=
=3D"font-family:tahoma,sans-serif;font-size:small"><img src=3D"cid:ii_k3abt=
e590" alt=3D"image.png" width=3D"184" height=3D"32" style=3D"margin-right:0=
px"></div></div></div></div></div></div></div></div></div></div>

--000000000000ab5a6d05d917b083--
--000000000000ab5a6e05d917b084
Content-Type: image/png; name="image.png"
Content-Disposition: inline; filename="image.png"
Content-Transfer-Encoding: base64
Content-ID: <ii_k3abte590>
X-Attachment-Id: ii_k3abte590

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
AAAAAElFTkSuQmCC
--000000000000ab5a6e05d917b084--

--===============2492222001104560303==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
xslt mailing list, project page http://xmlsoft.org/XSLT/
[email protected]
https://mail.gnome.org/mailman/listinfo/xslt

--===============2492222001104560303==--