한다고 가정 나는 다음과 같은 순서가 있습니다자녀를 기준으로 중복 노드를 제거하는 방법은 무엇입니까?
<node-1> <children-A attr="100" /> </node-1>
<node-1> <children-A attr="200" /> </node-1> <!--not a duplicate -->
<node-1> <children-B /> </node-1>
<node-1> <children-B /> </node-1> <!-- duplicate off the above -->
<node-1> <children-A /> <children-B /> </node-1> <!--not a duplicate -->
내가 가져올 모든 독특한 "노드 1"출력이 될 수 있도록 :
<node-1> <children-A attr="100" /> </node-1>
<node-1> <children-A attr="200" /> </node-1>
<node-1> <children-B /> </node-1>
<node-1> <children-A /> <children-B /> </node-1>
참고 : <node-1> <children-B /> </node-1>
가 제거되었습니다.
Saxon 9.1.0.8을 사용하여 distinct-value($S)
을 시도했지만 반환 유형은 xs:anyAtomicType
이며 적절한 순서로 캐스팅하는 방법을 모르겠습니다 (가능한 경우).
그러나 count(distinct-value($S))
을 사용하여 반환되는 요소의 수가 실제 고유 요소 수와 일치하는지 확인하고 실제로 일치하는지 확인할 수 있습니다. 당신이 <xsl:variable name="distinct-seq" select="functx:distinct-deep($your-sequence)"/>
을 사용할 수 있습니다 (차례 차례로 XSLT/XPath는 2.0 기능 deep-equal
를 사용 http://www.xsltfunctions.com/xsl/functx_is-node-in-sequence-deep-equal.html 사용) http://www.xsltfunctions.com/xsl/functx_distinct-deep.html를 사용
감사합니다 ... 그것은 작동합니다. –