BASH parsing for html tags

Hello can anyone help me parse this line.

<tr><td>United States of America</td><td>Dollar</td><td>43.309</td></tr><tr><td>Japan</td><td>Yen</td><td>0.5579</td></tr>

the line above did not break.

so i would like to have a result like this

United States of America
Dollar 
43.309
Japan
Yen

I would like to parse it by searching the <td> and </td> tags and print the inner value

Thanks.

One way:

echo $line | sed 's/<[./]*t[rd]>/\n/g' | awk 'NF'
string='<tr><td>United States of America</td><td>Dollar</td><td>43.309</td></tr><tr><td>Japan</td><td>Yen</td><td>0.5579</td></tr>'

while :
do
  case $string in
    \<*) string=${string#*>} ;;
    *\<*) printf "%s\n" "${string%%<*}"
       string=${string#*>}
       ;;
    *) [ -n "$string" ] && printf "%s\n" "$string"
      break ;;
  esac
done

Another one:

$ string="<tr><td>United States of America</td><td>Dollar</td><td>43.309</td></tr><tr><td>Japan</td><td>Yen</td><td>0.5579</td></tr>"
$ echo $string|tr -s "<td>" "\n"|grep -w "^td>*"|cut -d ">" -f 0,2

United States of America
Dollar
43.309
Japan
Yen
0.5579