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

Re: [xsl] Problem with a key

Subject: Re: [xsl] Problem with a key
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 22 Mar 2012 17:15:56 -0400

The use= attribute is calculated relative to the node matched.

You are matching on title so you need to express use= as relative to the title element.

BTW, the use of text() may happen to work but it is a bad habit to get into. So very (very!) rarely have I ever needed to use text(). If you want the text value of an element, simply address the element.

I hope this helps.

. . . . . . . . Ken

At 2012-03-22 16:10 -0500, russurquhart1@xxxxxxxxxxx wrote:
I am trying to use a key to return the errata_section title elements, given the device_name element attached to the parent errata_section.

The structure is like the following:

  <title>Bug title 1</title>



As several devices maybe addressed in a given errata_section element, i was trying to write a key to pull out, for a given device, ALL the errata_section titles that impact this device name. (Ideally for inclusion into a table based on the device name.

I wrote the following thinking this might work:

<xsl:key name="bugtitlekey" match="errata_section/title" use="errata_section/devices_impacted/device_name" />
<xsl:template match="/">
<xsl:value-of select="key('bugtitlekey', 'Mod4')/text()"/>


I don't get any output when i try this. I thought my key def was ok. Do i need to go deeper per each errata_section element?

Contact us for world-wide XML consulting and instructor-led training
Free 5-hour video lecture: XSLT/XPath 1.0 & 2.0 http://ude.my/uoui9h
Crane Softwrights Ltd.            http://www.CraneSoftwrights.com/s/
G. Ken Holman                   mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers:    http://www.CraneSoftwrights.com/legal

Current Thread