How to get value between patterns

Gurus,

If is my file
<PRODUCT_TYPE>DN</PRODUCT_TYPE><SERVER_NAME>testserver1</SERVER_NAME><FLAVOR>Windows</FLAVOR><OS>Windows NT</OS><CPU>4</CPU>
<PRODUCT_TYPE>PN</PRODUCT_TYPE><SERVER_NAME>testserver2</SERVER_NAME><FLAVOR>Windows</FLAVOR><OS>Windows NT</OS><CPU>3</CPU>
<PRODUCT_TYPE>QN</PRODUCT_TYPE><SERVER_NAME>testserver3</SERVER_NAME><FLAVOR>Unix</FLAVOR><OS>Windows NT</OS><CPU>2</CPU>

Output shud be

DN testserver1 Windows Windows NT 4
PN testserver2 Windows Windows NT 3
QN testserver3 Windows Windows NT 2

Basically i want to print values between <> & </>

Thanks
Sirabee

perl -nle'print join" ",m|<[^>]*>([^<]*)</[^>]*>|g' infile

Works Perfect, anything in sed or awk?, just curious

may be this will help

awk -F"[></]" '{print $3" "$8" "$13" "$18" "$23}' filename

You can use sed to remove tags and leave the values behind by using the literal '<' and '>' character along with the '\w' (match any word character like a-zA-Z-_ etc.)

sed -e 's:<\w*>::g' -e 's:</\w*>: :g' input_file > output_file
sed 's/<[^>]*>/ /g' filename
$ awk -F "[<>]" '{print $3,$7,$11,$15,$19}' file1
DN testserver1 Windows Windows NT 4
PN testserver2 Windows Windows NT 3
QN testserver3 Unix Windows NT 2