1

我如何通过使用 linq to xml 在 xml 文件中添加新标签,我希望新标签是第一个标签

<?xml version="1.0" encoding="utf-8"?>
<settings>
<Device>
  <username>fooo</username>
  <AgentName>fooo</AgentName>
  <password>fooo</password>
</Device>
<Device>
  <username>fooo1</username>
  <AgentName>fooo1</AgentName>
  <password>fooo1</password>
</Device>
</settings>

现在我想添加一个新标签来制作这样的文件

<settings>
<IncommingConfig>
    <ip>10.100.101.18</ip>
    <port>5060</port>
</IncommingConfig>
<Device>
  <username>fooo</username>
  <AgentName>fooo</AgentName>
  <password>fooo</password>
</Device>
<Device>
  <username>fooo1</username>
  <AgentName>fooo1</AgentName>
  <password>fooo1</password>
</Device>
</settings>
4

2 回答 2

3

这很容易使用XContainer.AddFirst,它将给定值添加为第一个孩子:

XDocument doc = XDocument.Load("data.xml");
doc.Root.AddFirst(new XElement("IncomingConfig", // Fixed typo in name
                     new XElement("ip", ipAddress),
                     new XElement("port", port)));
doc.Save("output.xml");
于 2012-08-25T19:59:47.227 回答
2
XDocument xmldoc = XDocument.Load(Server.MapPath("...."));
XElement parentXElement = xmldoc.XPathSelectElement("settings");
XElement newXElement = new XElement("IncommingConfig");
.. 

parentXElement.AddFirst(newXElement);
于 2012-08-25T20:00:47.177 回答