xsl-list
[Top] [All Lists]

[xsl] Fetching the value of a dynamically assigned attribute

2017-07-18 18:52:16
While mocking up some examples related to a previous question,
I have an example where I add a namespace to my stylesheet and
add some data to it:

  <myns:data>
    <foo>
      <bar>one</bar>
      <bar>two</bar>
      <bar>three</bar>
    </foo>
  </myns:data>

I also load another XML doc I am using data from:

  <xsl:variable name="documentAppConfig" 
select="document('some_binary.exe.config')" />

While looping over the elements from the data I added to my stylesheet, I
am trying to select the value of an attribute where the attribute name is
dynamically specified:

    <xsl:for-each select="document('')/xsl:stylesheet/myns:data/foo/bar">

        <!-- this works: -->
        <xsl:value-of select="concat('some-text', text())" />

        <!-- this does not work: -->
        <xsl:value-of 
select="$documentAppConfig/configuration/myNode/@*[local-name()=text()]" />

        <!-- this works: -->
        <xsl:variable name="text" select="text()" />
        <xsl:value-of 
select="$documentAppConfig/configuration/myNode/@*[local-name()=$text]" />

    </xsl:for-each>

That result is not surprising, but what is the syntactically correct
way of accomplishing this, or is the intermediate assignment the only
way?

Thanks,
jlc
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>