You have to specify the ascii value of the character being used to separate the various tokens (items). You can't use the actual character.
Eg: $gettok(%xcontent,2,.) is incorrect
but using the ascii value of the . character, which is 46, you can use $gettok(%xcontent,2,46) which is correct.
The items you're using are difficult to obtain ascii values for, but I happen to know that $cr is character 13 and $lf is character 10
All this aside, the text in %xcontent will only contain up to the $cr, $lf, or $crlf
Technically it is possible to contain those characters in the variable without it ending the contents of the variable, but this is fairly advanced, and I suspect that you aren't doing that.
If ID 1 is a list, then you can get the second item in the list by using $did(1,2) in an ON DIALOG event.
Setting %xcontent to $did(1).text will only fill the variable with the first item in the list.
This is the limit of what I'm safe in stating, without seeing more of your code.
I suggest that you carefully read the section on dialogs in the help file.