如何为加载的xml编写特定值?例如,我想要为PreferenceID 3更改OriginSource的值。最有效的方法是什么?
这是我正在尝试做的简短示例。
XmlDocument doc = new XmlDocument();
XmlElement el = (XmlElement)doc.AppendChild(doc.CreateElement("UserObject"));
XmlNode emailAddressXml = UserEmailAddressDTO.AppendChild(doc.CreateNode(XmlNodeType.Element, "EmailAddress", null));
emailAddressXml.InnerText = emailaddress;
doc.Load("Prefs.xml");
XmlNode SourceXml = UserEmailAddressDTO.AppendChild(doc.CreateNode(XmlNodeType.Element, "Source", null));
originSourceXml.InnerXml = "Good Sam";
string usrObj = doc.outerXml;
答案 0 :(得分:2)
效率是主观的,所以我会提供我的建议。根据.Net版本(我相信3.5+),您应该使用Linq2Xml。
XDocument
,XElement
和XAttribute
非常易于使用。
var doc = XDocument.Load("Prefs.xml");
var prefs = doc.Root.Descendents("UserEmailAddressPreferences");
现在,您可以使用Linq迭代XElement
中的每个prefs
。检索和编辑值非常简单:
// untested code
XElement el = prefs.Elements().Where(e => e.Element("PreferenceID").Value == 3)
.Select(e => e.Element("OriginSource")
.FirstOrDefault();
el.Value = "Something else":