xsl-list
[Top] [All Lists]

Re: [xsl] Using Lookup file in XSLT to cross reference old and pull in new numbers

2021-04-06 12:33:57
On 06.04.2021 19:05, Deiter, Cathy E (US) 
cathy(_dot_)deiter(_at_)baesystems(_dot_)com wrote:
I am a Newbie and am having difficulties with an XSLT doing a lookup. I
need to lookup up an old file number based off of an attribute, look at
the lookup file and pull in the new number. I am using Oxygen Editor
version 22.1.

My XML file looks like this. I need to find the highlighted file in my
lookup and replace with the new file number.
<proc>
<title>FOLLOW-ON MAINTENANCE</title>
<step1 id="M20340-03.01.01">
<para> Install access cover. <xref wpid="M20236" pretext="(" posttext=")"/>
</para>
</step1>
<step1 id="M20340-03.01.02">
<para> Fill cooling system to proper fluid level. <xref wpid="M20333"
pretext="(" posttext=")"/>
</para>
</step1>

My Lookup file looks like this (only added a few rows)
<row><NewFile id="M20236">M20016-9-2350-372</Newfile></row>
<row><NewFile id="M20234">M20381-9-2350-372</Newfile></row>
<row><NewFile id="M20232">M20017-9-2350-372</Newfile></row>

I would always use a key e.g. declare

   <xsl:key name="file-ref" match="row/NewFile" use="@id"/>

then simply use a template

   <xsl:template match="xref/@wpid[key('file-ref', ., doc('lookup.xml'))]">
      <xsl:attribute name="{name()}" select="key('file-ref', .,
doc('lookup.xml')"/>
   </xsl:template>

All normal copying would be handled by the identity transformation.


Of course the path and the lookup document is bested stored in a global
parameter or variable.
--~----------------------------------------------------------------
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>