input.each_byte{|b|
if (b ==60 && (type == NODE_TYPE_ATTRIBUTE || is_text_node(type)))
sb = sb + "<"
elsif (b == 62 && is_text_node(type))
sb = sb + ">"
elsif (b == 38 && (is_text_node(type) || is_text_node(type))) #Ampersand
sb = sb + "&"
elsif (b == 34 && is_text_node(type)) #Quote
sb = sb + """
elsif (b == 9 && is_text_node(type)) #Tabulator
sb = sb + "	"
elsif (b == 11 && is_text_node(type)) #CR
sb = sb + "
"
elsif (b == 13 && (type == NODE_TYPE_ATTRIBUTE || (is_text_node(type) && type != NODE_TYPE_WHITESPACE) || type == NODE_TYPE_COMMENT || type == NODE_TYPE_PI))
sb = sb + "
"
elsif (b == 13)
next
else
sb = sb.concat(b)
end
} sb end