C# 将值设置为加载的xml
如何将特定值写入加载的xml?例如,我想更改PreferenceID3的OriginSource值。最有效的方法是什么 这是我尝试做的一个简短示例C# 将值设置为加载的xml,c#,xml,C#,Xml,如何将特定值写入加载的xml?例如,我想更改PreferenceID3的OriginSource值。最有效的方法是什么 这是我尝试做的一个简短示例 XmlDocument doc = new XmlDocument(); XmlElement el = (XmlElement)doc.AppendChild(doc.CreateElement("UserObject")); XmlNode emailAddressX
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;
效率是主观的,所以我会提供我的建议。根据.Net版本(我相信是3.5+版本)的不同,您应该使用 ,并且非常容易使用
var doc = XDocument.Load("Prefs.xml");
var prefs = doc.Root.Descendents("UserEmailAddressPreferences");
现在,您可以使用Linq在prefs
中迭代每个XElement
。检索和编辑值非常简单:
// untested code
XElement el = prefs.Elements().Where(e => e.Element("PreferenceID").Value == 3)
.Select(e => e.Element("OriginSource")
.FirstOrDefault();
el.Value = "Something else":
不确定“合并”是什么意思,但使用DOM加载的.Xml文件(
XmlDocument
)与加载的XDocument
之间没有区别。两个对象都不可互换-使用一个或另一个。使用Linq2Xml,您有了更大的灵活性。@TreyCopelandXmlDocument
来自System.Xml
命名空间,不提供XDocument
提供的LINQ功能。然而,它们都是用来操作XML的