在 XmlDocument 中插入多个元素
Insert multiple elements in XmlDocument
这是我第一次使用 xmldocument,我有点不知所措。目标是插入:
<appSettings>
<add key="FreitRaterHelpLoc" value="" />
<add key="FreitRaterWebHome" value="http://GPGBYTOPSPL12/" />
<add key="FreitRaterDefaultSession" value="" />
<add key="FreitRaterTransferMode" value="Buffered" />
<add key="FreitRaterMaxMsgSize" value="524288" />
<add key="FreitRaterMaxArray" value="16384" />
<add key="FreitRaterMaxString" value="32768" />
<add key="FreitRaterSvcTimeout" value="60" />
</appSettings>
进入我的 XmlDoc 中的特定位置。
到目前为止,我只关注第一个元素
XmlElement root = Document.CreateElement("appSettings");
XmlElement id = Document.CreateElement("add");
id.SetAttribute("key", "FreitRaterHelpLoc");
id.SetAttribute("value", "");
root.AppendChild(id);
但这足以添加其余元素吗?例如,这是我对第 2 行
id = Document.CreateElement("add");
id.SetAttribute("key", "FreitRaterWebHome");
id.SetAttribute("value", "http://GPGBYTOPSPL12/");
root.AppendChild(id);
我不确定此处是否需要 InsertAfter,或者一般而言,获取此文本块的最佳方式是什么。同样,XmlDoc 新手
我强烈建议使用 LINQ 来 XML 而不是 XmlDocument
。这样更好 API - 您可以简单地以声明方式创建文档:
var settings = new XElement("appSettings",
new XElement("add",
new XAttribute("key", "FreitRaterHelpLoc"),
new XAttribute("value", "")),
new XElement("add",
new XAttribute("key", "FreitRaterWebHome"),
new XAttribute("value", "http://GPGBYTOPSPL12/")),
new XElement("add",
new XAttribute("key", "FreitRaterDefaultSession"),
new XAttribute("value", ""))
);
或者甚至可以通过声明简单的转换从其他对象生成它的一部分:
var dictionary = new Dictionary<string, string>
{
{"FreitRaterHelpLoc", ""},
{"FreitRaterWebHome", "http://GPGBYTOPSPL12/"},
{"FreitRaterDefaultSession", ""},
};
var keyValues =
from pair in dictionary
select new XElement("add",
new XAttribute("key", pair.Key),
new XAttribute("value", pair.Value));
var settings = new XElement("appSettings", keyValues);
这是我第一次使用 xmldocument,我有点不知所措。目标是插入:
<appSettings>
<add key="FreitRaterHelpLoc" value="" />
<add key="FreitRaterWebHome" value="http://GPGBYTOPSPL12/" />
<add key="FreitRaterDefaultSession" value="" />
<add key="FreitRaterTransferMode" value="Buffered" />
<add key="FreitRaterMaxMsgSize" value="524288" />
<add key="FreitRaterMaxArray" value="16384" />
<add key="FreitRaterMaxString" value="32768" />
<add key="FreitRaterSvcTimeout" value="60" />
</appSettings>
进入我的 XmlDoc 中的特定位置。
到目前为止,我只关注第一个元素
XmlElement root = Document.CreateElement("appSettings");
XmlElement id = Document.CreateElement("add");
id.SetAttribute("key", "FreitRaterHelpLoc");
id.SetAttribute("value", "");
root.AppendChild(id);
但这足以添加其余元素吗?例如,这是我对第 2 行
id = Document.CreateElement("add");
id.SetAttribute("key", "FreitRaterWebHome");
id.SetAttribute("value", "http://GPGBYTOPSPL12/");
root.AppendChild(id);
我不确定此处是否需要 InsertAfter,或者一般而言,获取此文本块的最佳方式是什么。同样,XmlDoc 新手
我强烈建议使用 LINQ 来 XML 而不是 XmlDocument
。这样更好 API - 您可以简单地以声明方式创建文档:
var settings = new XElement("appSettings",
new XElement("add",
new XAttribute("key", "FreitRaterHelpLoc"),
new XAttribute("value", "")),
new XElement("add",
new XAttribute("key", "FreitRaterWebHome"),
new XAttribute("value", "http://GPGBYTOPSPL12/")),
new XElement("add",
new XAttribute("key", "FreitRaterDefaultSession"),
new XAttribute("value", ""))
);
或者甚至可以通过声明简单的转换从其他对象生成它的一部分:
var dictionary = new Dictionary<string, string>
{
{"FreitRaterHelpLoc", ""},
{"FreitRaterWebHome", "http://GPGBYTOPSPL12/"},
{"FreitRaterDefaultSession", ""},
};
var keyValues =
from pair in dictionary
select new XElement("add",
new XAttribute("key", pair.Key),
new XAttribute("value", pair.Value));
var settings = new XElement("appSettings", keyValues);