Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 31st, 2012  |  syntax: None  |  size: 1.20 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Select all elements that does not exist in another node with XSLT
  2. <root>
  3.   <users>
  4.     <array>
  5.       <name>John</name>
  6.       <age>30</age>
  7.     </array>
  8.     <array>
  9.       <name>Joe</name>
  10.       <age>30</age>
  11.     </array>
  12.     <array>
  13.       <name>Lou</name>
  14.       <age>30</age>
  15.     </array>
  16.   </users>
  17.   <selected_users>
  18.     <name>Joe</name>
  19.     <age>30</age>
  20.   </selected_users>
  21. </root>
  22.        
  23. <xsl:stylesheet version="1.0"
  24.  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  25.     <xsl:output indent="yes" method="text"/>
  26.  
  27.     <xsl:template match="users/array/name[not(.=/*/selected_users/name)]">
  28.         <xsl:value-of select="concat(., ' ')"/>
  29.     </xsl:template>
  30.     <xsl:template match="text()"/>
  31. </xsl:stylesheet>
  32.        
  33. <root>
  34.     <users>
  35.         <array>
  36.             <name>John</name>
  37.             <age>30</age>
  38.         </array>
  39.         <array>
  40.             <name>Joe</name>
  41.             <age>30</age>
  42.         </array>
  43.         <array>
  44.             <name>Lou</name>
  45.             <age>30</age>
  46.         </array>
  47.     </users>
  48.     <selected_users>
  49.         <name>Joe</name>
  50.         <age>30</age>
  51.     </selected_users>
  52. </root>
  53.        
  54. John Lou
  55.        
  56. <xsl:variable name="vSomeName" select=
  57. "/*/users/array/name[not(.=/*/selected_users/name)]"/>