XDocument.Root.Element返回null

时间:2012-11-15 17:08:22

标签: c# .net xml linq-to-xml

我有XML,就像:

<?xml version="1.0" encoding="utf-16"?>
<RootNodeName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns:xsd="http://www.w3.org/2001/XMLSchema" MyAttribute="7" xmlns="mylink">
  <IsValid>false</IsValid>
  <Name>some matrix</Name>
  ...Some more nodes...
</RootNodeName>

和代码类似:

var doc = XDocument.Parse(myXmlString);
Console.WriteLine(doc.Root.Element("Name"));

和控制台只显示一个空格,因为doc.Root.Element("Name")返回null =(

虽然我可以在doc.Root.Elements()结果中找到此元素。 doc.Root.Attribute("MyAttribute")也会给出正确的结果。

它/我有什么问题?

1 个答案:

答案 0 :(得分:11)

<Name>元素位于mylink命名空间中:

XNamespace mylink = "mylink";

Console.WriteLine(doc.Root.Element(mylink + "Name"));