对XML后进行解析构表,修改其中的某个结点值.. 
如内容为: 
<data> 
<proposal org_code="11" psn_code="255" etitle="mmmmmmm" ntype="MT"> </proposal> 
<budget prp_code="12" tNo="2" item_name="AA" tMoney="20.00"  re="aa"> </budget> 
<budget prp_code="13" tNo="6" item_name="BB" tMoney="30.00"  re="bb"> </budget> 
<targets id="12" tag="bbb"> </targets> 
</data> 我现在要在所有budget的结点最后加上一条新的budget记录,
如<budget prp_code="15" tNo="11" item_name="CC" tMoney="50.00"  re="cc"> </budget> 最后形成如下:
<data> 
<proposal org_code="11" psn_code="255" etitle="mmmmmmm" ntype="MT"> </proposal> 
<budget prp_code="12" tNo="2" item_name="AA" tMoney="20.00"  re="aa"> </budget> 
<budget prp_code="13" tNo="6" item_name="BB" tMoney="30.00"  re="bb"> </budget> 
<budget prp_code="15" tNo="11" item_name="CC" tMoney="50.00"  re="cc"> </budget> 
<targets id="12" tag="bbb"> </targets> 
</data> 
请问应该怎样写,跪求高手指教!

解决方案 »

  1.   

    先创建budget节点,然后找到源文件中的budget节点,附加上去就行了。
    再给新添加的budget节点添加属性和属性值。
      

  2.   

                XmlDocument xdoc = new XmlDocument();
                xdoc.LoadXml(@"<data>  
    <proposal org_code=""11"" psn_code=""255"" etitle=""mmmmmmm"" ntype=""MT"">  </proposal>  
    <budget prp_code=""12"" tNo=""2"" item_name=""AA"" tMoney=""20.00""  re=""aa"">  </budget>  
    <budget prp_code=""13"" tNo=""6"" item_name=""BB"" tMoney=""30.00""  re=""bb"">  </budget>  
    <targets id=""12"" tag=""bbb"">  </targets>  
    </data>");
                XmlNode budget = xdoc.SelectSingleNode("data/budget");
                budget = budget.Clone();
                budget.Attributes["prp_code"].Value = "15";
                budget.Attributes["tNo"].Value = "11";
                budget.Attributes["item_name"].Value = "CC";
                budget.Attributes["tMoney"].Value = "50.00";
                budget.Attributes["re"].Value = "cc";
                xdoc.ChildNodes[0].AppendChild(budget);
                richTextBox1.Text = xdoc.OuterXml;
      

  3.   

    先查找budget节点,然后在对应位置插入新的节点就够
      

  4.   

    这样才安全            XmlDocument xdoc = new XmlDocument();
                xdoc.LoadXml(@"<data>  
    <proposal org_code=""11"" psn_code=""255"" etitle=""mmmmmmm"" ntype=""MT"">  </proposal>  
    <budget prp_code=""12"" tNo=""2"" item_name=""AA"" tMoney=""20.00""  re=""aa"">  </budget>  
    <budget prp_code=""13"" tNo=""6"" item_name=""BB"" tMoney=""30.00""  re=""bb"">  </budget>  
    <targets id=""12"" tag=""bbb"">  </targets>  
    </data>");
                XmlElement budget = xdoc.CreateElement("budget");
                XmlAttribute prp_code = xdoc.CreateAttribute("prp_code");
                XmlAttribute tNo = xdoc.CreateAttribute("prp_code");
                XmlAttribute item_name = xdoc.CreateAttribute("prp_code");
                XmlAttribute tMoney = xdoc.CreateAttribute("prp_code");
                XmlAttribute re = xdoc.CreateAttribute("prp_code");
                budget.Attributes.Append(prp_code);
                budget.Attributes.Append(tNo);
                budget.Attributes.Append(item_name);
                budget.Attributes.Append(tMoney);
                budget.Attributes.Append(re);
                xdoc.ChildNodes[0].AppendChild(budget);
                prp_code.Value = "15";
                tNo.Value = "11";
                item_name.Value = "CC";
                tMoney.Value = "50.00";
                re.Value = "cc";
                richTextBox1.Text = xdoc.OuterXml;
    结构固定的话,用XSD去搞吧,省去了不少代码