Mon requirenament est de supprimer un tag Relation où @guid
correspondance avec l'un des @relationObj
de relations où <roleCode tc=32>
ou <roleCode tc=31>
ou <roleCode tc=8>
seulement. La logique ci-dessus est également applicable à @relationObj
qui doit correspondre à l'un des @relationObj
de Relation où <roleCode tc=32>
ou <roleCode tc=31>
ou <roleCode tc=8>
seulement.section Supprimer fondée sur la condition de recherche
Fondamentalement, je veux chercher @guid
et @relationObj
en recherchant d'autres balises de relation où @relationObj
appartient à <roleCode tc=32>
ou <roleCode tc=31>
ou <roleCode tc=8>
. Si cette condition est vraie, supprimez cette section.
est en dessous du XML:
<Relations>
<Relation guid="abcd1234" relationObj="1234">
<roleCode tc="20"/>
</Relation>
<Relation guid="xyz123" relationObj="1111">
<roleCode tc="32"/>
</Relation>
<Relation guid="def123" relationObj="2222">
<roleCode tc="31"/>
</Relation>
<Relation guid="1111" relationObj="2222">
<roleCode tc="98"/>
</Relation>
<Relation guid="jkl123" relationObj="3333">
<roleCode tc="8"/>
</Relation>
<Relation guid="2222" relationObj="1234">
<roleCode tc="100"/>
</Relation>
</Relations>
J'ai essayé de créer trois variables pour extraire @relationObj
pour chaque <roleCode tc>[32,31 and 8]
à l'intérieur du modèle. Et puis en comparant @objectId
et @relationObj
avec ces trois variables. Mais le problème ici est, la variable est mise à jour à la valeur vide quand elle rencontre une autre étiquette <Relation>
en itérant.
De ci-dessus xml je devrais obtenir ci-dessous xml après transformation.
<Relations>
<Relation guid="abcd1234" relationObj="1234">
<roleCode tc="20"/>
</Relation>
<Relation guid="xyz123" relationObj="1111">
<roleCode tc="32"/>
</Relation>
<Relation guid="def123" relationObj="2222">
<roleCode tc="31"/>
</Relation>
<Relation guid="jkl123" relationObj="3333">
<roleCode tc="8"/>
</Relation>
<Relation guid="2222" relationObj="1234">
<roleCode tc="100"/>
</Relation>
</Relations>
Si vous observez, la balise <Relation>
avec [guid = "1111" relationObj = "2222"] est supprimé. Parce que @guid et @relationObj appartiennent à l'un des roleCodes - 32,31 ou 8.
Pourriez-vous s'il vous plaît me dire quel est le meilleur pour enregistrer la valeur dans une variable sans mettre à jour avec un nouveau? ou y at-il une meilleure approche que je peux y parvenir. Merci pour votre temps.
Merci pour votre mise à jour. En appliquant xslt ci-dessus, la dernière étiquette de relation [guid = "2222" relationObj = "1234"] ne doit pas être supprimée. Parce que @ relationObj = "1234" appartient au rôleCode 20 qui n'est pas dans la condition. S'il vous plaît voir ma sortie mise à jour xml. –
@MadhuCM Dans votre question initiale, vous avez dit que la relation 2222/1234 devrait être supprimée. Changez-vous maintenant les exigences afin que vous ne souhaitez que supprimer les relations où _both_ la '' guid' _et_ la relationObj' correspondre à un (éventuellement différent) 'Relation/@ relationObj' dont' roleCode' est l'un des trois? –
la dernière relation @ guid = "2222" appartient au rôleCode 31 mais @ relationObj = "1234" n'appartient à aucun des roleCodes (32,31 ou 8). Il devrait donc fondamentalement fonctionner avec ET pour supprimer la section de relation. –