Using GNU awk for gensub():
$ gawk '
BEGIN {
map["fa"]="Persian"
map["en"]="English"
}
{
for (abbr in map)
$0 = gensub("(xml:lang=\")" abbr "(\")","\\1" map[abbr] "\\2","")
$0 = gensub(/(<[^[:space:]]+)[^"]+"([^"]+)">(.*)>$/,"\\1_\\2>\\3_\\2>","")
}
1' file
<DATE_Western>1996-06-22</DATE_Western>
<DATE_Persian>1375/04/02</DATE_Persian>
<CAT_Persian>ادب و هنر</CAT_Persian>
<CAT_English>Literature and Art</CAT_English>