Subject: [xsl] How to create xsl:key that has a composite value in its "use" attribute? From: "Roger L Costello costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 15 Mar 2025 13:19:36 -0000 |
Hi Folks, I have an XML document that contains <row> elements within a <BDRY> element: <BDRY> <row> <BDRY_IDENT>ABC</BDRY_IDENT> <NAV_IDENT>VOR1</NAV_IDENT> <NAV_CTRY>US</NAV_CTRY> <NAV_TYPE>1</NAV_TYPE> </row> ... <!-- thousands of row elements --> </BDRY> Also, within the XML document are <row> elements within an <ANAV> element: <ANAV> <row> <ARPT_IDENT>Logan</ARPT_IDENT> <NAV_IDENT>VOR1</NAV_IDENT> <NAV_CTRY>US</NAV_CTRY> <NAV_TYPE>1</NAV_TYPE> </row> ... </ANAV> When I process one of the ANAV row elements, I want to select the row elements in BDRY that match on NAV_IDENT, NAV_CTRY, NAV_TYPE. I believe the proper terminology, is that I have a composite key, yes? I would like to create an xsl:key for the BDRY rows and I want xsl:key to specify that the rows to be selected are based on the composite key NAV_IDENT, NAV_CTRY, NAV_TYPE. Here's how I specified xsl:key in my XSLT program: <xsl:key name="ANAV-to-BDRY" match="BDRY/row" use="NAV_IDENT, NAV_CTRY, NAV_TYPE " composite="yes"/> Is that the correct way to specify xsl:key? At the point in my program where I want to use the key, I have an ANAV row element. I want to use its NAV_IDENT, NAV_CTRY, and NAV_TYPE child elements to obtain BDRY row elements with matching fields, and output the <BDRY_IDENT> element in each matching row: <result> <xsl:sequence select="key('ANAV-to-BDRY', (NAV_IDENT, NAV_CTRY, NAV_TYPE))/BDRY_IDENT"/> </result> That must be incorrect because the <result> element is erroneously populated with a <BDRY_IDENT> element for every <row> element in <BDRY>: <result> <BDRY_IDENT>...</BDRY_IDENT> <BDRY_IDENT>...</BDRY_IDENT> <BDRY_IDENT>...</BDRY_IDENT> ... <!-- thousands of them --> </result> What am I doing wrong? /Roger
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Help, my problem is n-cub, Liam R. E. Quin liam | Thread | Re: [xsl] How to create xsl:key tha, Martin Honnen martin |
Re: [xsl] Help, my problem is n-cub, Liam R. E. Quin liam | Date | Re: [xsl] How to create xsl:key tha, Martin Honnen martin |
Month |