Try something like this
sb.Append("<LIST>");
int i=0;
while (sdr.Read())
{
string node1 = (sdr["STATE"].ToString());
string node2 = (sdr["Subcat1"].ToString());
string node3 = (sdr["Subcat2"].ToString());
if(i==0)
sb.Append("<STATE NAME=\"" + node1 + "\" >");
i=1;
sb.Append("<Subcat1 NAME=\"" + node2 + "\" >");
sb.Append("<Subcat2 NAME=\"" + node3...