string i = "<asdasd><info><1><asd>asd</asd></1><2><qwe>asd</qwe></2><3><abd><123/abd></3></info>";
string j = "<asdasd><info><2><asd asd='123'>asdasd</asd></2></info>";我怎么替换用J里面的<2><asd asd='123'>asdasd</asd></2>替换I里面<2><qwe>asd</qwe></2> 并且把没J里面没有的<qwe>asd</qwe> 添加到里面  最后I的值是<asdasd><info><1><asd>asd</asd></1><2><qwe>asd</qwe><asd asd='123'>asdasd</asd></2><3><abd><123/abd></3></info>在C#中怎么写  高手 教教小弟啊 做了几天都没做出来 字符的数字不是固定的

解决方案 »

  1.   

    System.xml里面一堆类,自己去整
      

  2.   

    你为什么非得用123做为节点名称呢
    前面加个Row之类的
    这样就可以使用XML的方式来读取了
      

  3.   


    string s1 = "<asdasd><info><Row1><asd>asd</asd></Row1><Row2><qwe>asd</qwe></Row2><Row3><abd>123</abd></Row3></info></asdasd>";
    string s2 = "<asdasd><info><Row2><asd asd='123'>asdasd</asd></Row2></info></asdasd>";XmlDocument doc1 = new XmlDocument();
    doc1.LoadXml(s1);XmlDocument doc2 = new XmlDocument();
    doc2.LoadXml(s2);XmlNode info = doc2.SelectSingleNode("/asdasd/info");
    foreach (XmlNode node in info.ChildNodes)
    {
        XmlNode temp = doc1.SelectSingleNode("/asdasd/info/" + node.Name);
        temp.InnerXml = node.InnerXml;
    }
    Console.WriteLine(doc1.OuterXml);//这里输出的是结果
      

  4.   

    比如说<Row2><qwe>asd</qwe></Row2>
    的<qwe>节点就还要继续添加到里面去
      

  5.   

    那就加段话
    上面的Foreach里面改成如下
    XmlNode temp = doc1.SelectSingleNode("/asdasd/info/" + node.Name);
    foreach (XmlNode child1 in temp.ChildNodes)
    {
        XmlNode child2 = node.SelectSingleNode(child1.Name);
        if (child2 == null)
        {
            node.InnerXml += child1.OuterXml;//前后顺序自己调整node.InnerXml = child1.OuterXml + node.InnerXml;
        }
    }
    temp.InnerXml = node.InnerXml;