[英]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.