簡體   English   中英

在另一個根C#之前添加一個根xml元素

[英]Adding a root xml element before another root C#

我有一個下面的xml文檔:

-<Machines>


-<Machine>


-<InstallPath >

<Component "/>

<Component "/>

<Component "/>

<Component "/>

<Component "/>


</InstallPath>

</Machine>
</Machines>

在Machines實用地使用C#之前,我需要添加一個根清單元素。

我嘗試了以下代碼,但收到一條錯誤消息,指出文檔的結構不正確。

這是我正在嘗試的代碼:

using (XmlReader reader = cmd.ExecuteXmlReader())
                    {
                        XDocument doc = XDocument.Load(reader);
                        doc.Root.AddBeforeSelf(new XElement("Manifest"));
                        string path = outputPath + "\\" + xmlFileName;

                        doc.Save(path);    
                    }

XML只能有一個“根”元素。 因此,您想要的結構無效:

<Manifest>
    ...
</Manifest>
<Machines>
    ...
</Machines>

如果需要兩個同級元素,則需要將它們包含在另一個父元素中。

我希望清單元素包圍Machines元素,並且Machines元素包含xml的其余部分

然后,您需要創建一個文檔:

XDocument newDoc = new XDocument(new XElement("Manifest", doc.Root));

這將創建一個帶有Manifest根標記的新XDocument ,其內容是原始文檔的根(和內容)。

使用當前的Root創建一個新元素,並將其放入新的XDocument

XDocument newDoc = new XDocument(new XElement("Manifest", doc.Root));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM