在另一个根 C# 之前添加根 xml 元素
Adding a root xml element before another root C#
我有一个 xml 文档如下:
-<Machines>
-<Machine>
-<InstallPath >
<Component "/>
<Component "/>
<Component "/>
<Component "/>
<Component "/>
</InstallPath>
</Machine>
</Machines>
我需要使用 C# 在 Machines 之前添加一个根 Manifest 元素。
我尝试了以下代码,但收到一条错误消息,指出文档构造不正确。
这是我正在尝试的代码:
using (XmlReader reader = cmd.ExecuteXmlReader())
{
XDocument doc = XDocument.Load(reader);
doc.Root.AddBeforeSelf(new XElement("Manifest"));
string path = outputPath + "\" + xmlFileName;
doc.Save(path);
}
XML 只能有一个 "root" 元素。所以你想要的结构是无效的:
<Manifest>
...
</Manifest>
<Machines>
...
</Machines>
如果您想要两个同级元素,则需要将它们包含在另一个父元素中。
I want the Manifest element to surround the Machines element and the Machines element to contain the rest of the xml
然后你需要创建一个新的文档:
XDocument newDoc = new XDocument(new XElement("Manifest", doc.Root));
这将创建一个带有 Manifest
根标签的新 XDocument
,其内容是原始文档的根(和内容)。
用当前的 Root
创建一个新元素并将其放入新的 XDocument
:
XDocument newDoc = new XDocument(new XElement("Manifest", doc.Root));
我有一个 xml 文档如下:
-<Machines>
-<Machine>
-<InstallPath >
<Component "/>
<Component "/>
<Component "/>
<Component "/>
<Component "/>
</InstallPath>
</Machine>
</Machines>
我需要使用 C# 在 Machines 之前添加一个根 Manifest 元素。
我尝试了以下代码,但收到一条错误消息,指出文档构造不正确。
这是我正在尝试的代码:
using (XmlReader reader = cmd.ExecuteXmlReader())
{
XDocument doc = XDocument.Load(reader);
doc.Root.AddBeforeSelf(new XElement("Manifest"));
string path = outputPath + "\" + xmlFileName;
doc.Save(path);
}
XML 只能有一个 "root" 元素。所以你想要的结构是无效的:
<Manifest>
...
</Manifest>
<Machines>
...
</Machines>
如果您想要两个同级元素,则需要将它们包含在另一个父元素中。
I want the Manifest element to surround the Machines element and the Machines element to contain the rest of the xml
然后你需要创建一个新的文档:
XDocument newDoc = new XDocument(new XElement("Manifest", doc.Root));
这将创建一个带有 Manifest
根标签的新 XDocument
,其内容是原始文档的根(和内容)。
用当前的 Root
创建一个新元素并将其放入新的 XDocument
:
XDocument newDoc = new XDocument(new XElement("Manifest", doc.Root));