home contribute faq download

FunctX XSLT Functions

functx:sequence-node-equal-any-order

Whether two sequences contain the same XML nodes, regardless of order

Google
Webxsltfunctions.com

Description

The functx:sequence-node-equal-any-order function returns a boolean value indicating whether the two arguments have the same nodes, in any order. They are compared based on node identity, not their contents.

Arguments and Return Type

NameTypeDescription
$seq1 node()* the first sequence of nodes
$seq2 node()* the second sequence of nodes
return value xs:boolean

XSLT Function Declaration

See XQuery definition.
<xsl:function name="functx:sequence-node-equal-any-order" as="xs:boolean"
              xmlns:functx="http://www.functx.com">
  <xsl:param name="seq1" as="node()*"/>
  <xsl:param name="seq2" as="node()*"/>

  <xsl:sequence select="
  not( ($seq1 except $seq2, $seq2 except $seq1))
 "/>

</xsl:function>

Examples

<xsl:variable name="in-xml" as="item()*">
<authors>
   <author>
      <fName>Kate</fName>
      <lName>Jones</lName>
   </author>
   <author>
      <fName>John</fName>
      <lName>Doe</lName>
   </author>
</authors>
</xsl:variable>
<xsl:variable name="anAuthor" as="item()*">
<author>
   <fName>Kate</fName>
   <lName>Jones</lName>
</author>
</xsl:variable>
XPath ExampleResults
functx:sequence-node-equal-any-order(
     $in-xml/author, $in-xml/*)
true
functx:sequence-node-equal-any-order(
     $in-xml/author,
     ($in-xml/author[2],$in-xml/author[1]))
true
functx:sequence-node-equal-any-order(
     $in-xml/author[1],$anAuthor)
false

See Also

functx:sequence-node-equalWhether two sequences contain the same XML nodes, in the same order
functx:sequence-deep-equalWhether two sequences have the same XML node content and/or values

History

Published OnLast UpdatedContributor(s)
2006-06-272007-02-26Priscilla Walmsley, Datypic, pwalmsley@datypic.com, http://www.datypic.com
Datypic XSLT Services

Recommended Reading:

XQuery