ms = new MemoryStream();
                    xmlWt = new XmlTextWriter(ms, Encoding.Unicode);
                    ds.DataSetName = dataSetName;
                    ds.Tables[0].TableName = dataTableName;
                    ds.WriteXml(xmlWt);
                    int count = (int)ms.Length;
                    byte[] temp = new byte[count];
                    ms.Seek(0, SeekOrigin.Begin);
                    ms.Read(temp, 0, count);
                    UnicodeEncoding ucode = new UnicodeEncoding();
                    string returnVal = ucode.GetString(temp).Trim();
                    return returnVal;这是将 dataset 转换成 xml字符串 的代码但如果dataset 里某个字段值为null 并没有xml显示比如说有两个字段
id name 
1   人
2   null转换后就是
<id>1</id><name>人</name>
<id>2</id>-----我想要的结果是
<id>1</id><name>人</name>
<id>2</id><name></name>

解决方案 »

  1.   

    先遍历DataSet,处理为null的数据,然后再转换。
      

  2.   

    null处理为""就应该可以了吧?
      

  3.   

    等于null 就给他个空格就可以啊
      

  4.   

    转换的时候替换null为-----读取的时候替换-----为"";就哦了。。
      

  5.   

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt = getTable();
                foreach (DataRow row in dt.Rows)
                {
                    if (string.IsNullOrEmpty(row[0].ToString()))
                        row[0] = "";
                    if (string.IsNullOrEmpty(row[1].ToString()))
                        row[1] = "";
                }
                dt.WriteXml(Server.MapPath("xml.xml"));
            }
        }
        public DataTable getTable()
        {
            string[] name = { "张三", "李四", null };
            DataTable dt = new DataTable("XML");
            dt.Columns.Add("ID", typeof(System.Int32));
            dt.Columns.Add("Name", typeof(System.String));
            for (int i = 0; i < name.Length; i++)
            {
                DataRow row = dt.NewRow();
                row[0] = i + 1;
                row[1] = name[i];
                dt.Rows.Add(row);
            }
            return dt;
        }
      

  6.   

    处理下null就可以了吧  
      

  7.   

    添加到xml时 name=null?" ":dr["name"].Tostring();
    不过不记得当=“”的时候标签是不是也不会出来?
     要不当null时就加“--”这样吧,我们的是这样的: name==null?"--":dr["name"].Tostring();
      

  8.   

    某字段为null此时保存到xml中的节点将不会显示
    可以将保存xml的字段类型设置为image等类型