本帖最后由 lcddjyy 于 2010-09-01 16:46:47 编辑

解决方案 »

  1.   

    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");
      

  2.   

    Header 和 Item 是两个DataTable吧。
    这样的话,你只能自己去生成你想的那种XML了。
      

  3.   

    <?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()进行读的 
      

  4.   

    下班前顶一下,跟CustomerPONumber一起都加在header下不就完了
      

  5.   

    上面我的代码是错的,这个才是对的,我经过测试了
    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");
      

  6.   


    人家的xml很大的话,节点很多的话 ,你这样不是写死人 ·~其实楼主这个问题 完全不需要想得这么复杂,你写这个schema来规范你的xml文档就是了
    把Header 写成:complexType然后还是用你原来写xml的方式去生成就是了
      

  7.   

    非常感谢大家的帮忙 我用下面的代码可以实现
    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的文件路径