I think you forgot to provide the correct example of how I would use
the path, you said:
In this case you could have
document('')/*/trans:tr/tr_string[(_at_)str=$str]/*[(_at_)lang=$toLang]"
But that's how I am using it now. How would I use it if I change the
xml format to use 'lang' attribute of a string?
Then there is a question of which format would be faster for Xpath to
test to see if string exists in a desired language?
On Tue, May 12, 2009 at 11:00 AM, Wendell Piez
<wapiez(_at_)mulberrytech(_dot_)com> wrote:
Dmitri,
At 07:06 AM 5/12/2009, you wrote:
<!-- get translation of a string -->
<xsl:template name="translateString">
<xsl:param name="str" select="'recent_albums'"/>
<xsl:param name="toLang"/>
<xsl:param name="fallback" select="'en'"/>
<xsl:choose>
<xsl:when test="true()">
<xsl:value-of
select="document('')/*/trans:tr/tr_string[(_at_)str=$str]/$toLang"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'not found'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
I get errors when running this template.
If I manually replace the $str and $toLang, then I am getting the
correct result.
<xsl:value-of
select="document('')/*/trans:tr/tr_string[(_at_)str='recent_images']/ru"/>
What is wrong with my syntax that uses params? Are params allowed in
Xpath expression?
Only the "/$toLang" step will give the error.
You have a couple of options. You could fall back on name testing, and use
the step "/*[name()=$toLang]".
If you find that cumbersome (and some of us do), you could remodel somewhat.
Instead of using 'de', 'fr', 'en' and so forth as element names:
<de>Halt<de>
<fr>Arretez</fr>
<en>Stop</en>
you could reduce them to values on attributes:
<str lang="de">Halt</str>
<str lang="fr">Arretez</str>
<str lang="en">Stop</str>
In this case you could have
document('')/*/trans:tr/tr_string[(_at_)str=$str]/*[(_at_)lang=$toLang]"
I hope that helps,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--