繁体   English   中英

在C#中的XML文件中添加带有节点子元素的新元素

[英]Add a new element with node childs in a XML file in c#

我有这样的xml:

<Servers>
  <MyNewServer>
    <Host>10.10.10.2</Host>
    <Port>12</Port>
    <User>MyUser</User>
    <Password>NkbgKnF9g96EYgxG3qRdCNY2KR6Xd5+0uqpY9KOCl4k=</Password>
  </MyNewServer>
</Servers>

我正在尝试在“ NyNewServer”标签下方添加新服务器,并在空白处添加相同的子元素(主机,端口,用户和密码)。

我现在要添加服务器的新元素,但格式不正确,而是水平显示而不是垂直显示,而且我不确定如何将子元素添加为空白。

任何想法? 我有这个:

public void XmlNewInterface(string Server)
{
    //Temporal Solution
    xmldoc.Load(XMLInterfacesFile);            
    XmlElement record = xmldoc.CreateElement(Server);
    record.InnerText = Guid.NewGuid().ToString();
    xmldoc.DocumentElement.AppendChild(record);

    xmldoc.Save(XMLInterfacesFile);
}

谢谢

我更喜欢Linq而不是Xml ,它简化了Xml构建/构造。 您只需要这些行。

var doc = XDocument.load(inputfile);

doc.Descendants("Servers").First()
    .Add( new XElement("OneMoreServer",  new [] { 
        new XElement("Host"), 
        new XElement("Port"),
        new XElement("MyUser"),
        new XElement("Password")    
    })); 

输出量

<Servers>
    <MyNewServer>
        <Host>10.10.10.2</Host>
        <Port>12</Port>
        <User>MyUser</User>
        <Password>NkbgKnF9g96EYgxG3qRdCNY2KR6Xd5+0uqpY9KOCl4k=</Password>
    </MyNewServer>
    <OneMoreServer>
        <Host />
        <Port />
        <MyUser />
        <Password />
    </OneMoreServer>
</Servers>

工作Demo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM