父节点下有 A、B、C三个节点,A节点随着数据库里的数据循环添加 等A节点所有数据添加完后 在B节点随着数据库里的数据循环添加 不是添加一个A然后添加一个B
<abc>
<a>
<value>01<value>
</a>
<a>
<value>02<value>
</a>
.
.
.
<
<b>
<value>01<value>
</b>
<b>
<value>02<value>
</b>
.
.
.
<c>
<value>01<value>
</c>
<c>
<value>02<value>
</c>
.
.
.
</abc>
C呢?
C是在B添加完后在随数据库数据添加, 而且ABC用的是数据库里同一张表的数据
@菜鸟起飞啊: 对不起我没表达清楚。
我的意思是你说啥完全没看懂,能不能不要这么抽象?
@爱编程的大叔:
怎样生成这样的这是xmlspy工具里的截图
@菜鸟起飞啊: 你这样说应该就有人能懂了。
不过我还是不懂,这个怎么了?
你是需要代码?什么语言?还是哪一步不懂?
1、读数据库
2、生成XML字符串
3、保存文件。
@爱编程的大叔: 生成那样的xml字符串不会 每次都生成了abcabcabc而不是aaabbbccc 我需要形成那样的代码,思路也行
@菜鸟起飞啊: 你怎么写的?
@爱编程的大叔:
XmlElement TGSY = xmldoc.CreateElement("TGSYs");
xe1.AppendChild(TGSY);
foreach (DataRow dr in dt.Rows)
{
Jydz(TGSY, dr);
Drl(TGSY, dr);与jydz相试
Jzsh(TGSY, dr);与jydz相试
Jbfd(TGSY, dr);与jydz相试
Ysp(TGSY, dr);与jydz相试
}
private static void Jydz(XmlElement TGSY, DataRow dr)
XmlElement RowElen = xmldoc.CreateElement("JYDZ");
RowElen.SetAttribute("Remark", "0");
RowElen.SetAttribute("Temperature", HJWD);
RowElen.SetAttribute("TestID", dr["SYSTEM_ID"].ToString());
RowElen.SetAttribute("TestProperty", dr["SYSTEM_SY_SYXZ"].ToString() + "试验");
RowElen.SetAttribute("AcquisitionTime", var);
RowElen.SetAttribute("Humidity", HJSD);
RowElen.SetAttribute("OilTemperature",Oil);
XmlElement xt = xmldoc.CreateElement("Phase");
xt.SetAttribute("Name", "A相");
RowElen.AppendChild(xt);
XmlElement xt1 = xmldoc.CreateElement("WindingType");
xt1.SetAttribute("Name", "高压绕组");
xt.AppendChild(xt1);
XmlElement xt2 = xmldoc.CreateElement("ZP_JYDZ");
xt2.SetAttribute("DataUnit", "MΩ");
xt1.AppendChild(xt2);
XmlElement xt3 = xmldoc.CreateElement("Value");
xt3.InnerText = "0";//dr["ITEM_c6a9c6a5-44eb-4e88-879f-9307e0d23302"].ToString();
xt2.AppendChild(xt3);
XmlElement xt4 = xmldoc.CreateElement("MP_JYDZ");
xt4.SetAttribute("DataUnit", "MΩ");
xt1.AppendChild(xt4);
XmlElement xt5 = xmldoc.CreateElement("Value");
xt5.InnerText = dr["ITEM_5acfe3a4-e9dd-42dd-aa5a-0556d7b745ff"].ToString();
xt4.AppendChild(xt5);
TGSY.AppendChild(RowElen);
@爱编程的大叔: 我就是按上面来写的
@菜鸟起飞啊: 大叔你行行好帮帮我好吗,我真的很急,帮帮忙好吗
@爱编程的大叔: 大叔你行行好帮帮我好吗,我真的很急,帮帮忙好吗
@爱编程的大叔: 我用这种排序不行啊,能帮我看看吗
XElement xe = XElement.Load(@"f:\Data\" + MPID + ".xml");
var query = from xn in xe.Elements("TGSYs")
let jydz = xn.Elements("JYDZ")
let drl = xn.Elements("DRL")
let jzsh = xn.Elements("JZSH")
let jbfd = xn.Elements("JBFD")
let ysp = xn.Elements("YSP")
orderby jydz,drl,jzsh,jbfd,ysp
select new
{
jydz=jydz,
drl=drl,
jzsh = jzsh,
jbfd = jbfd,
ysp = ysp
};
foreach(var v in query)
{
Console.WriteLine("jydz={0},drl={1},jzsh={2},jbfd={3},ysp={4}", v.jydz,v.drl,v.jzsh,v.jbfd,v.ysp);
xe.Save(@"f:\Data\" + MPID + ".xml");
}