日期:2014-05-17  浏览次数:20467 次

怎么在xml中添加属性?
例如已有这样一条xml字符串
<客户 客户姓名="王五" 客户代码="3" 协议号="abc" 额度="333" 账户="3" 品种="4" </客户信息>

怎么在这条xml中新增一个属性,求各位帮忙,谢谢!

------解决方案--------------------
System.IO.MemoryStream stream = new System.IO.MemoryStream();
            byte[] bytes =System.Text.Encoding.Unicode.GetBytes("<客户 客户姓名=\"王五\" 客户代码=\"3\" 协议号=\"abc\" 额度=\"333\" 账户=\"3\" 品种=\"4\" />");
            stream.Write(bytes, 0, bytes.Length);
            stream.Position = 0L;
            System.Xml.Linq.XDocument doc = System.Xml.Linq.XDocument.Load(stream);

            doc.Element("客户").Add(new System.Xml.Linq.XAttribute("新属性", "100"));

            string xml = doc.ToString();

------解决方案--------------------
http://www.cnblogs.com/lifepoem/archive/2011/12/06/2277554.html

这是 linq操作 xml的教程   
看完了 你不但学会了 操作xml的知识  还学习了linq  

不要图懒  在网上找现成的方法  那样没有提升的
------解决方案--------------------
lz给的xml根本不合法,假定给客户姓名为王五的添加属性“客户性别”,属性值为“男”:
		string filename = @"c:\test.xml";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(filename);
(xmlDoc.SelectSingleNode(@"//客户[@客户姓名='王五']") as XmlElement).SetAttribute("客户性别", "男");
xmlDoc.Save(filename);

------解决方案--------------------
看你操作XML是否频繁,如果不是每分钟千万次的读写XML,那就用linq to xml 吧。网上这方面的资料很多。前段时间的编码内容也遇到了操作xml文件,因为以前学java的时候用了很多的Dom4J一类的树状节点操作,所以很自然这里也这样用。后来学了一点linq语句,发现太方便了。推荐使用linq,如果没有很明确的效率要求的话。