Xdocument Descendants函数给出异常

时间:2012-07-31 13:48:01

标签: c# xml

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

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

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

文档包含body元素,那么为什么会出现此异常?

3 个答案:

答案 0 :(得分:1)

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

XNamespace ns = "whatever the namespace uri is";
xdoc.Descendants(ns + "body").Single().Add(el); 

答案 1 :(得分:0)

尝试使用:

xdoc.Root.Descendants("body").Single().Add(el);

答案 2 :(得分:0)

你可以找到没有命名空间的元素,只需在XElement中使用Local Name

XElement root = XElement.Load("Data.xml");
root.Descendants().Where(x => x.Name.LocalName == "body")