내 요구 사항은 @guid
이 관계 @relationObj
중 하나와 일치하는 관계 태그를 삭제하는 것입니다. 여기에서 <roleCode tc=32>
또는 <roleCode tc=31>
또는 <roleCode tc=8>
중 하나와 일치해야합니다. 위 로직은 @relationObj
중 하나와 일치해야하는 @relationObj
에도 적용됩니다. 여기에서 <roleCode tc=32>
또는 <roleCode tc=31>
또는 <roleCode tc=8>
인 경우에만 일치해야합니다.검색 조건을 기반으로 섹션 삭제
기본적으로 내가 @relationObj
가 <roleCode tc=32>
또는 <roleCode tc=31>
또는 <roleCode tc=8>
에 속하는 경우 다른 관계 태그를보고 @guid
및 @relationObj
를 검색 할 수 있습니다. 이 조건이 참이면이 섹션을 삭제하십시오.
<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>
내가 템플릿 내부의 각 <roleCode tc>[32,31 and 8]
에 대한 @relationObj
를 추출하는 세 가지 변수를 만들려고 : 아래
@objectId
과
@relationObj
을이 세 변수와 비교합니다. 하지만 여기서 문제는 iterating하는 동안 다른
<Relation>
태그를 만나면 변수가 빈 값으로 업데이트되는 것입니다.
위의 XML에서 변환 후 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="jkl123" relationObj="3333">
<roleCode tc="8"/>
</Relation>
<Relation guid="2222" relationObj="1234">
<roleCode tc="100"/>
</Relation>
</Relations>
, 함께 <Relation>
태그 [GUID = "1111"relationObj는 = "2222"가] 삭제됩니다. @guid와 @relationObj는 모두 roleCodes - 32,31 또는 8 중 하나에 속하기 때문에.
새 변수로 업데이트하지 않고 변수의 값을 저장하는 것이 가장 좋은지 알려 주시기 바랍니다. 또는 나는 이것을 달성 할 수있는 더 좋은 접근법이있다. 시간 내 주셔서 감사합니다.
감사합니다. xslt 위에 적용하면 마지막 관계 태그 [guid = "2222"relationObj = "1234"]는 삭제하면 안됩니다. @ relationObj = "1234"는 조건에없는 roleCode 20에 속하기 때문에. 내 업데이트 된 출력 XML을 참조하십시오. –
원래 질문에서 @MadhuCM 당신은 2222/1234 관계가 삭제되어야한다고 말했습니까? 이제는 'guid'와 'relationObj'가 'roleCode'가 세 가지 중 하나 인 'Relation/@ relationObj'와 일치하는 관계 만 삭제하도록 요구 사항을 변경하고 있습니까? –
마지막 관계의 @ guid = "2222"는 roleCode 31에 속하지만 @relObj = "1234"는 roleCodes (32,31 또는 8)에 속하지 않습니다. 따라서 기본적으로 AND 조건을 사용하여 관계 섹션을 삭제해야합니다. –