使用c#在XML中的特定位置附加

时间:2018-05-15 07:12:23

标签: c# xml xelement

我是这样的XML文件

//div ng-repeat="(k,v) in items"

<div ng-if="(k == 'a' &&  k == 'b')">
    <!-- SOME CONTENT -->
</div>

我试图在这个xml文件中添加新的软件类型,例如浏览器,浏览器将与游戏相同,它将具有browser1,browser2和一些浏览器将具有属性。我已经使用了这个

<?xml version="1.0" encoding="utf-8"?>
<MY_COMPUTER>
    <HARDWARE uid="" update="" functions=""  />
    <SOFTWARE>
        <GAMES uid="" update="" functions=""  url="">
            <GAME1 Game1-Attribute1="" />
            <GAME2 Game2-Attribute1="" Game2-Attribute2="" Game2-Attribute3="" Game2-Attribute4="" />
            <GAME3 Game3-Attribute1="" Game3-Attribute2="" Game3-Attribute3=""/>
            <GAME4 Game4-Attribute1="" Game4-Attribute2=""/>
        </GAMES>
    </SOFTWARE>
</MY_COMPUTER>

但是使用此代码将其附加到“软件”下,我知道我可能犯了一个非常大的初学者错误,但我无法修复它,有人可以帮助我吗?我还在stackoverflow上检查了很多关于这方面的问题,但我仍然无法管理它。人们说有很多方法比如使用LINQ或流我不知道使用哪一个但是这个文件不会真的很大所以我只需要一种方法可行 感谢

1 个答案:

答案 0 :(得分:1)

在软件元素之后添加此xml片段的原因是您要将其添加到root元素本身(root.Add)。

如果要将其添加到软件元素中,则应相应地修改代码。

找到所需的元素并改为调用其Add方法。

var softwareElement = root.Descendants("SOFTWARE").First();

softwareElement.Add(
    new XElement("BROWSER",
        new XAttribute("uid", ""), new XAttribute("update", ""),
        new XElement("BROWSER2"),
        new XElement("BROWSER3"),
        new XElement("BROWSER4")
    )
);

然后像以前一样保存所有xml。

root.Save(filePath, SaveOptions.DisableFormatting);