xsl-list
[Top] [All Lists]

XSL Problem

2004-08-10 17:01:23
I've run into a difficult xslt problem and I was hoping someone may have some 
insight.
 
I have an XML structure that looks like this (the '...'s represent nodes that 
aren't directly relevant to the question and are omitted):
 
<PersAutoInsurance>
 <PersVeh>
  ...
  <AdditionalInterest>
    <AdditionalInterestInfo>
    <NatureInterestCd>ADDIN</NatureInterestCd>
   </AdditionalInterestInfo>
  </AdditionalInterest>
  <AdditionalInterest>
   ...
   <AdditionalInterestInfo>
    <NatureInterestCd>LIEN</NatureInterestCd>
   </AdditionalInterestInfo>
  </AdditionalInterest>
  <AdditionalInterest>
   ...
   <AdditionalInterestInfo>
    <NatureInterestCd>LIEN</NatureInterestCd>
   </AdditionalInterestInfo>
  </AdditionalInterest>
 </PersVeh>
 <PersVeh>
  <AdditionalInterest>
   ...
   <AdditionalInterestInfo>
    <NatureInterestCd>ADDIN</NatureInterestCd>
   </AdditionalInterestInfo>
  </AdditionalInterest>
  <AdditionalInterest>
   ...
   <AdditionalInterestInfo>
    <NatureInterestCd>LIEN</NatureInterestCd>
   </AdditionalInterestInfo>
  </AdditionalInterest>
  <AdditionalInterest>
   ...
   <AdditionalInterestInfo>
    <NatureInterestCd>AIL</NatureInterestCd>
   </AdditionalInterestInfo>
  </AdditionalInterest>
 </PersVeh>
</PersAutoInsurance>
 
What I'm trying to do is select NatureInterestCd's based on the following 
criteria:
1) I cannot accept the first NatureInterestCd = LIEN for each vehicle (but may 
accept any subsequent for processing)
2) I cannot accept the first NatureInterestCd = AIL for each vehicle (but may 
accept any subsequent for processing)
2) I can accept any other node
 
I attempted to use this type of statement to get the nodes and loop over them:
<xsl:for-each 
select="PersAutoInsurance/PersVeh/AdditionalInterest/AdditionalInterestInfo[not(NatureInterestCd
 = 'LIEN') and not(NatureInterestCd = 'AIL')]">
 
But that eliminates all nodes, not simply the first.  I tried adding in a 
position() qualifier, but that ended up only checking the first node in the 
whole node-set selected.
 
I tried 
generate-id(PersAutoInsurance/PersVeh[1]/AdditionalInterest/AdditionalInterestInfo[NatureInterestCd
 = 'LIEN'][1]) as that XPATH returns the LIEN I don't want (I had to use it in 
another part of the xsl), but the ID it generated wasn't the same as the ID 
that was being generated when I looped over the all the NatureInterestCd's, so 
I couldn't eliminate the node based on that.
 
I'm nearing my wits end on this problem and I was hoping that someone could 
give some insight into this problem.
 
Dale Earnest
 


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