d = Dir.glob("xml/*.xml")
ids = []
# collect symbols
d.each do |file|
f = File.new(file)
buf = f.read
ids << buf.scan(/.*id="(.*)".*/)
end
ids = ids.flatten
#resolve symbols
d.each do |file|
f = File.new(file,"r+")
buf = f.read
p file
ids.each do |id|
if "xml/"+id+".xml" == file
next
end
re = Regexp.compile('([^"\w\d])('+id+')([^"\w\d])')
buf.gsub!(re, '\1\2\3')
buf.gsub!(/(<\/link>)+/, '\1')
buf.gsub!(/(]*>)+/, '\1')
end
f.rewind
f.write buf
f.rewind
end