require 'nokogiri' xml = < mmm zzz ccc zzz ccc ENDXML doc = Nokogiri::XML(xml) do |config| config.options = Nokogiri::XML::ParseOptions::NOBLANKS end node1 = doc.at_xpath('//node1') sorted = node1.children.sort_by{ |n| n.text } sorted.each{ |n| node1 << n } puts doc #=> #=> #=> #=> ccc #=> mmm #=> zzz #=> #=> #=> zzz #=> ccc #=> #=>