求助(关于C# DataSet.WriteXML的问题) 本帖最后由 lcddjyy 于 2010-09-01 16:46:47 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 XmlDocument MyXML = new XmlDocument(); MyXML.Load("1.xml"); XmlNode Node = MyXML.DocumentElement; XmlElement Header= MyXML.CreateElement("Header"); XmlElement CustomerPONumber = MyXML.CreateElement("CustomerPONumber"); CustomerPONumber.InnerText = Header; XmlElement Item = MyXML.CreateElement("Item"); Item.InnerText = Header; XmlElement id = MyXML.CreateElement("id"); id.InnerText = Item; XmlElement CustomerPONumber1 = MyXML.CreateElement("CustomerPONumber"); CustomerPONumber1.InnerText = Item; XmlElement ItemNumber = MyXML.CreateElement("ItemNumber"); ItemNumber.InnerText = Item; Header.AppendChild("BJ8888");//括号里自己加,下同 Item.AppendChild("148"); Item.AppendChild("BJ8888"); Item.AppendChild("10"); MyXML.Save("1.xml"); Header 和 Item 是两个DataTable吧。这样的话,你只能自己去生成你想的那种XML了。 <?xml version="1.0" encoding="utf-8"?><NewDataSet> <Header> <CustomerPONumber>BJ8888</CustomerPONumber> <Item> <id>148</id> <CustomerPONumber>BJ8888</CustomerPONumber> <ItemNumber>10</ItemNumber> </Item> </Header></NewDataSet>这种方法也是可以用 Dataset.ReadXml()进行读的 下班前顶一下,跟CustomerPONumber一起都加在header下不就完了 上面我的代码是错的,这个才是对的,我经过测试了string A = "BJ8888"; string B= "148"; string C = "10"; XmlDocument MyXML = new XmlDocument(); MyXML.Load("1.xml"); XmlNode Node = MyXML.DocumentElement; XmlElement Header = MyXML.CreateElement("Header"); XmlElement CustomerPONumber = MyXML.CreateElement("CustomerPONumber"); CustomerPONumber.InnerText = A; XmlElement Item = MyXML.CreateElement("Item"); XmlElement id = MyXML.CreateElement("id"); id.InnerText = B; XmlElement CustomerPONumber1 = MyXML.CreateElement("CustomerPONumber"); CustomerPONumber1.InnerText = A; XmlElement ItemNumber = MyXML.CreateElement("ItemNumber"); ItemNumber.InnerText = C; Node.PrependChild(Header); XmlNode node = MyXML.SelectSingleNode("//Header"); Header.AppendChild(CustomerPONumber);//括号里自己加,下同 Item.AppendChild(id); Item.AppendChild(CustomerPONumber1); Item.AppendChild(ItemNumber); node.AppendChild(Item); MyXML.Save("1.xml"); 人家的xml很大的话,节点很多的话 ,你这样不是写死人 ·~其实楼主这个问题 完全不需要想得这么复杂,你写这个schema来规范你的xml文档就是了把Header 写成:complexType然后还是用你原来写xml的方式去生成就是了 非常感谢大家的帮忙 我用下面的代码可以实现XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(fileName); XmlNodeList xnl = xmldoc.SelectNodes(".//Item"); foreach (XmlNode xn in xnl) { xmldoc.ChildNodes[1].FirstChild.AppendChild(xn); } xmldoc.Save(fileName);fileName为xml的文件路径 webBrowser控件奇怪的问题 求C#电子商务系统(要求2.0开发) 窗口从不透明变透明时会闪烁一下 udpclient通讯问题,详见内容 VS2005一个奇怪的问题,谁遇到过? text文本框中的数据与SQL中数据的如何比较 [高分求助]关于线程的问题!!! TreeView间复制、删除问题? 请问哪里有 vs.net 中文正式版下载? c#新手项目 求datagriadview的使用方法和listview的使用方法案例,越详细越好 List 中修改某一项的值如何操作
MyXML.Load("1.xml");
XmlNode Node = MyXML.DocumentElement;
XmlElement Header= MyXML.CreateElement("Header");
XmlElement CustomerPONumber = MyXML.CreateElement("CustomerPONumber");
CustomerPONumber.InnerText = Header;
XmlElement Item = MyXML.CreateElement("Item");
Item.InnerText = Header;
XmlElement id = MyXML.CreateElement("id");
id.InnerText = Item;
XmlElement CustomerPONumber1 = MyXML.CreateElement("CustomerPONumber");
CustomerPONumber1.InnerText = Item;
XmlElement ItemNumber = MyXML.CreateElement("ItemNumber");
ItemNumber.InnerText = Item;
Header.AppendChild("BJ8888");//括号里自己加,下同
Item.AppendChild("148");
Item.AppendChild("BJ8888");
Item.AppendChild("10");
MyXML.Save("1.xml");
这样的话,你只能自己去生成你想的那种XML了。
<NewDataSet>
<Header>
<CustomerPONumber>BJ8888</CustomerPONumber>
<Item>
<id>148</id>
<CustomerPONumber>BJ8888</CustomerPONumber>
<ItemNumber>10</ItemNumber>
</Item>
</Header>
</NewDataSet>
这种方法也是可以用 Dataset.ReadXml()进行读的
string A = "BJ8888";
string B= "148";
string C = "10";
XmlDocument MyXML = new XmlDocument();
MyXML.Load("1.xml");
XmlNode Node = MyXML.DocumentElement;
XmlElement Header = MyXML.CreateElement("Header");
XmlElement CustomerPONumber = MyXML.CreateElement("CustomerPONumber");
CustomerPONumber.InnerText = A;
XmlElement Item = MyXML.CreateElement("Item");
XmlElement id = MyXML.CreateElement("id");
id.InnerText = B;
XmlElement CustomerPONumber1 = MyXML.CreateElement("CustomerPONumber");
CustomerPONumber1.InnerText = A;
XmlElement ItemNumber = MyXML.CreateElement("ItemNumber");
ItemNumber.InnerText = C;
Node.PrependChild(Header);
XmlNode node = MyXML.SelectSingleNode("//Header");
Header.AppendChild(CustomerPONumber);//括号里自己加,下同
Item.AppendChild(id);
Item.AppendChild(CustomerPONumber1);
Item.AppendChild(ItemNumber);
node.AppendChild(Item);
MyXML.Save("1.xml");
人家的xml很大的话,节点很多的话 ,你这样不是写死人 ·~其实楼主这个问题 完全不需要想得这么复杂,你写这个schema来规范你的xml文档就是了
把Header 写成:complexType然后还是用你原来写xml的方式去生成就是了
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(fileName);
XmlNodeList xnl = xmldoc.SelectNodes(".//Item");
foreach (XmlNode xn in xnl)
{
xmldoc.ChildNodes[1].FirstChild.AppendChild(xn);
}
xmldoc.Save(fileName);
fileName为xml的文件路径