File formating (sed command)

I am new ot unix. Is there one or two lines of command (sed may be) to format a file.

My source is..

<tag1>
<tag2>
<datatag1>
data1
</datatag1>
<datatag2>
data2
</datatag2>
<datatag3>
data3
</datatag3>
<datatag4>
data1
</datatag3>
</tag2>
</tag1>

Should be formatted as...

<tag1>
<tag2>
<datatag1>data1</datatag1>
<datatag2>data2</datatag2>
<datatag3>data3</datatag3>
<datatag4>data1</datatag3>
</tag2>
</tag1>
 awk '{if(!/^</){getline x;printf p$0x;p=""}else{if(NR>1)print p;p=$0}}END{print p}' infile

Hi, Try this,

 awk '{
if (/datatag/) {
getline tmp
getline tmp1
print $0 tmp tmp1
} else print $0
}' file