0

我在 Xdocument 对象中加载了一个 html 文档:

XDocument xdoc = Xdocument.load(path);
XElement el = new XElement("name","value");

xdoc.Descendants("body").Single().Add(el);  <=== sequence conatin no element

document 包含 body 元素,那么为什么会出现这个异常?

4

3 回答 3

1

body我怀疑问题是由于命名空间而找不到元素。如果它在命名空间中,您可以使用以下命令找到它:

XNamespace ns = "whatever the namespace uri is";
xdoc.Descendants(ns + "body").Single().Add(el); 
于 2012-07-31T13:54:34.717 回答
0

尝试使用:

xdoc.Root.Descendants("body").Single().Add(el);
于 2012-07-31T13:53:24.103 回答
0

您可以找到没有 Namespase 的元素,只需在 XElement 中使用 LocalName

XElement root = XElement.Load("Data.xml");
root.Descendants().Where(x => x.Name.LocalName == "body")
于 2012-07-31T14:02:57.557 回答