sed: replace string with another string (with spaces)

Hi
I have an XML file with strings XABCD, XEFGHX and XIJKLX. I would like to replace XABCDX with "This is the first string", XEFGHX with "This is the second string" and XIJKLX with "This is the third string".

What is the best way to implement this? Should I have a file with the data that is read by a script which uses sed commands or can this be within the script itself? Assuming that I have x number of strings like the above. an example will be helpful. Thx.

sed -e 's/XABCD/This is the first string/g' -e 's/XEFGHX/This is the second string/g' -e 's/XIJKLX//This is the third string/g' XMLFILE > XMLFILE.$$ && \
cp XMLFILE.$$ XMLFILE && \
rm XMLFILE.$$

would do the trick but would get cumbersome if you had say 99 different strings you wanted to substitute, I'm sure a scripting guru my come up with something more elegant!

Thx Tony. Any other suggestions on this? Thx.

Any suggestions on this? Thx.

awk -v FS='|' ' NR == FNR { arr[$1]=$2; next }
{
    for (str in arr)
        gsub(str,arr[str])
    print $0
}' data_file input_file

data_file has the format

string1|replacement for string1
str2|rep2
...