private void button1_Click(object sender, EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
// 创建头部声明信息 <?xml version="1.0" encoding="utf-8"?>
XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmlDoc.AppendChild(xmlDec);
// 新建根节点 <Root></Root>
XmlElement Root = xmlDoc.CreateElement("Root");
xmlDoc.AppendChild(Root);
// root下的子节点 <Name></Name>
XmlElement Name = xmlDoc.CreateElement("Name");
XmlAttribute NameType = xmlDoc.CreateAttribute("Type");
XmlAttribute NameAtte = xmlDoc.CreateAttribute("Name");
NameType.Value = "String";
NameAtte.Value = "姓名";
Name.InnerText = "张三";
Name.SetAttributeNode(NameType);
Name.SetAttributeNode(NameAtte);
Root.AppendChild(Name);
// root下的子节点 <Age></Age>
XmlElement Age = xmlDoc.CreateElement("Age");
XmlAttribute AgeType = xmlDoc.CreateAttribute("Type");
XmlAttribute AgeAtte = xmlDoc.CreateAttribute("Name");
AgeType.Value = "String";
AgeAtte.Value = "年龄";
Age.InnerText = "30";
Age.SetAttributeNode(AgeType);
Age.SetAttributeNode(AgeAtte);
Root.AppendChild(Age);
// root下的子节点 <Sex></Sex>
XmlElement Sex = xmlDoc.CreateElement("Sex");
XmlAttribute SexType = xmlDoc.CreateAttribute("Type");
XmlAttribute SexAtte = xmlDoc.CreateAttribute("Name");
SexType.Value = "String";
SexAtte.Value = "性别";
Sex.InnerText = "男";
Sex.SetAttributeNode(SexType);
Sex.SetAttributeNode(SexAtte);
Root.AppendChild(Sex);
// root下的子节点 <Else></Else>
XmlElement Else = xmlDoc.CreateElement("Else");
Root.AppendChild(Else);
DataTable dt = getDataTable();
for (int i = 0; i < dt.Rows.Count; i++)
{
XmlElement Body = xmlDoc.CreateElement("Body");
Else.AppendChild(Body);
String serialNoVal = "";
if ((dt.Rows[i]["serialNo"].ToString()) != null)
{
serialNoVal = dt.Rows[i]["serialNo"].ToString();
}
XmlElement SerialNo = xmlDoc.CreateElement("SerialNo");
SerialNo.InnerText = serialNoVal;
Body.AppendChild(SerialNo);
String scoreVal = "";
if ((dt.Rows[i]["score"].ToString()) != null)
{
scoreVal = dt.Rows[i]["score"].ToString();
}
XmlElement Score = xmlDoc.CreateElement("Score");
Score.InnerText = scoreVal;
Body.AppendChild(Score);
}
xmlDoc.Save("Test.xml");
}
// 这里手动组装一个DataTable
private DataTable getDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("serialNo");
dt.Columns.Add("score");
DataRow dr1 = dt.NewRow();
dr1["serialNo"] = "1";
dr1["score"] = "100";
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["serialNo"] = "2";
dr2["score"] = "98";
dt.Rows.Add(dr2);
return dt;
}
xml输出结果:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Name Type="String" Name="姓名">张三</Name>
<Age Type="String" Name="年龄">30</Age>
<Sex Type="String" Name="性别">男</Sex>
<Else>
<Body>
<SerialNo>1</SerialNo>
<Score>100</Score>
</Body>
<Body>
<SerialNo>2</SerialNo>
<Score>98</Score>
</Body>
</Else>
</Root>