xml中怎么插入节点的属性值

xml中如何插入节点的属性值
需要输出的xml形式
 <?xml version="1.0" encoding="UTF-8" ?> 
- <EFSFRAME efsframe="urn=tv100-hisense-com" version="1.0">
- <DATAINFO>
- <MAC_APPLY_LOG writeevent="0" operation="0">
  <APPLY_NO datatype="0" state="0" /> 
  <COUNTRY datatype="0" state="0">中国</COUNTRY> 
</DATAINFO>
- </MAC_APPLY_LOG >
 
而我的做出的xml
 <?xml version="1.0" encoding="UTF-8" ?> 
- <EFSFRAME efsframe="urn=tv100-hisense-com" version="1.0">
- <DATAINFO>
- <MAC_APPLY_LOG >
  <APPLY_NO /> 
  <COUNTRY 中国</COUNTRY> 
</DATAINFO>
- </MAC_APPLY_LOG>

我写的代码如下:
 string macxml = "<DATAINFO><MAC_APPLY_LOG ><APPLY_NO>" + "" + "</APPLY_NO><COUNTRY >" +"国家"+ "</COUNTRY></DATAINFO></MAC_APPLY_LOG >  
XmlDocument doc = new XmlDocument();
 doc.LoadXml(macxml);
XmlElement el = doc.DocumentElement;
el.GetElementsByTagName("MAC_APPLY_LOG");  //获取节点
el.SetAttribute(writeevent,"0");             //添加属性
el.SetAttribute(operation,"0");

直接将属性值加到macxml中是不行的,系统会报错
请大神指导指导  那个地方错了。
------解决思路----------------------
http://www.cnblogs.com/tomin/archive/2009/02/27/1399566.html
------解决思路----------------------
http://blog.****.net/duanzi_peng/article/details/24018431
------解决思路----------------------
向XML插入节点属性值
//实现插入XML数据库节点方法
public int AddTitle(string name,string body,int userID,int boardID,byte state)
{
XmlParamter[] param = {
XmlDatabase.CreateInsertParameter("Name",name),
XmlDatabase.CreateInsertParameter("Body",body),
XmlDatabase.CreateInsertParameter("UserID",userID.ToString()),
XmlDatabase.CreateInsertParameter("BoardID",boardID.ToString()),
XmlDatabase.CreateInsertParameter("CreateDate",DateTime.Now.ToShortDateString()),
XmlDatabase.CreateInsertParameter("VisitNum","0"),
XmlDatabase.CreateInsertParameter("ReplyNum","0"),
XmlDatabase.CreateInsertParameter("State",state.ToString())
};
//调用公共类中的AddXmlData向XML数据库中添加数据
return (XmlDatabase.AddXmlData(XmlBBS.TitleFilePath,TitleTableName,param));
}
//添加上述AddXmlData数据方法public static int AddXmlData(string path,string tableName,params XmlParamter[] param)
{
            //创建XmlDocument类的实例
            XmlDocument xmldoc = new XmlDocument();
            //调用XmlDocument类中的Load()方法加载XML文件
            xmldoc.Load(path);
//选择根节点
            XmlNode node = xmldoc.SelectSingleNode("/" + tableName + "s");
if(node == null) return -1;
            
//创建新记录的ID值
            int newID;
            if (node.LastChild == null)
            {
                newID = 1;  
            }
            else
            {
                newID = DataTypeConvert.ConvertToInt(node.LastChild.Attributes["ID"].Value) + 1;
            }
if(newID < 1) return -1;
//创建一个新节点
            XmlNode newNode = xmldoc.CreateNode(XmlNodeType.Element, tableName, null);
if(newNode == null)return -1;
//添加ID的值
            newNode.Attributes.Append(CreateNodeAttribute(xmldoc, "ID", newID.ToString()));
//添加新节点的属性
foreach(XmlParamter p in param)
{
                newNode.Attributes.Append(CreateNodeAttribute(xmldoc, p.Name, p.Value));
}//CodeGo.net/
//将新节点追加到根节点中
node.AppendChild(newNode);
            //保存XML文档
            xmldoc.Save(path);
return newID;
}