And also change characters (the bold one: concat("hi", xdXDocument:GetDOM("characters")/characters/@crlf, "there")) into the name of your secondary datasource, most likely buttonstyle.
If you have more knowledge of what you doing you might be able to solve more problems, so here we go:
The text on the button is constructed with data from a secondary datasource, in this case probably buttonstyle.xml.
Concat is an xpath function that joins strings ( = text) into one string, for example: concat("a", "bc", "d") will result in "abcd". Because InfoPath won't let you enter a carriage return (cr) or linefeed (lf), someone constructed this xml file. The 'weird characters' are a 'special' representation of a carriage return and linefeed, InfoPath will display them as cr/lf. If you just add 
 on the label it will display it as text, not the 'special' representation. So what happens here is: combine the text hi with crlf from the secondary datasource 'buttonstyle' and there, resulting in a button with two lines of text.
Goodluck,
Albert