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>
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>
{
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;
}
不过不记得当=“”的时候标签是不是也不会出来?
要不当null时就加“--”这样吧,我们的是这样的: name==null?"--":dr["name"].Tostring();
可以将保存xml的字段类型设置为image等类型