C#通过XmlDocument组装xml

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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想天涯~路在脚下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值