给定一个 XContainer 我想完全包装它的内容(包括根元素)。XContainer 包含一些 XML。我试图通过将 XContainer 内容包装在父元素中来创建 XHTML 文档。
XElement headElement = new XElement("head");
XElement bodyElement = new XElement("body", container);
container.ReplaceWith(new XElement("html", headElement, bodyElement));
以上不起作用。这可能吗?还是我需要创建另一个 XContainer 并使用原始 XContainer 的内容构建它?
更新
为含糊的问题道歉。让我添加一些上下文。我有一个将 XContainer 作为参数的方法。我想修改这个 XContainer 实例。期望的最终结果是原始 XContainer 内容被“包装”在 body 元素中。在下面的示例中,XContainer 在调用 ReplaceWith() 之后似乎没有改变。这意味着容器不包括元素,“html、head 或 body”。希望这更清楚。
protected void BuildXhtmlDocument(XContainer container)
{
XElement headElement = new XElement("head");
XElement bodyElement = new XElement("body", container);
container.ReplaceWith(new XElement("html", headElement, bodyElement));
}