1

如何将特定值写入加载的 xml?例如,我希望 OriginSource 的值更改为 PreferenceID 3。最有效的方法是什么?

这是我正在尝试做的一个简短示例。

    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;
4

1 回答 1

2

效率是主观的,所以我将提供我的建议。根据 .Net 版本(我相信 3.5+),您应该使用Linq2Xml

XDocument, XElement, 并且XAttribute非常容易使用。

var doc = XDocument.Load("Prefs.xml");

var prefs = doc.Root.Descendents("UserEmailAddressPreferences");

XElement现在您可以在prefsusing Linq中迭代每个。检索和编辑值很容易:

//  untested code
XElement el = prefs.Elements().Where(e => e.Element("PreferenceID").Value == 3)
                              .Select(e => e.Element("OriginSource")
                              .FirstOrDefault();

el.Value = "Something else":
于 2013-03-06T18:24:32.623 回答