update an element in a XML group by using information on second XML



I am trying to update indicator element in below XML based on second XML's PDetails/PStatus/Code value. The second XML can be accessed by keeping it in a xsl variable. both XMLs have equal number of group segments.


MAIN input XML:



<IResponse>
<iOSection>
<Details>
<Info>
<pNumber>FB061689</pNumber>
<indicator></indicator>
<Identifier>1</Identifier>
</Info>
</Details>
<Token>
<Reference>1UUYD05BHM21OJCK3881C7F</Reference>
</Token>
</iOSection>
<iOSection>
<Details>
<Info>
<pNumber>FB061690</pNumber>
<indicator></indicator>
<Identifier>2</Identifier>
</Info>
</Details>
<Token>
<Reference>1UUYD05BHM21OJCK3881C7F</Reference>
</Token>
</iOSection>
</IResponse>


Secondary XML:



<RS PartID="abcd" SysID="mnc">
<PDetails>
<PN>FB063586</PN>
<PStatus>
<Code>0</Code>
<Description>Cancelled</Description>
</PStatus>
</PDetails>
<PDetails>
<Error>
<Code>92</Code>
<Message>failed</Message>
</Error>
</PDetails>
</RS>


The value of should be 'YES' when RS/PDetails/PStatus = '0' and RS/PDetails/Message = 'Cancelled' , in all other cases it should be 'NO'


can it be done using xslt 1.0 or xslt2.0?


Expecting OutPut is:



<IResponse>
<iOSection>
<Details>
<Info>
<pNumber>FB061689</pNumber>
<indicator>YES</indicator>
<Identifier>1</Identifier>
</Info>
</Details>
<Token>
<Reference>1UUYD05BHM21OJCK3881C7F</Reference>
</Token>
</iOSection>
<iOSection>
<Details>
<Info>
<pNumber>FB061690</pNumber>
<indicator>NO</indicator>
<Identifier>2</Identifier>
</Info>
</Details>
<Token>
<Reference>1UUYD05BHM21OJCK3881C7F</Reference>
</Token>
</iOSection>
</IResponse>

No comments:

Post a Comment