我有一个类似的情况,因为这之一:

public class TestLinq2Xml
{
  private XElement GenerateSomeXml()
  {
     return XElement.Parse(@"<MyObject>
                                <Properties>
                                   <Name>My object 1</Name>
                                   <Position>0; 0; 0</Position>
                                </Properties>
                             </MyObject>");
  }

public void ExploreXmlNode()
{
  var xmlTree = this.GenerateSomeXml();

  var name = xmlTree.Element("MyObject").Element("Properties").Element("Name").Value;

  Console.WriteLine(name);
}

}

确定,这是非常简化的。 ....但它仍然不会工作。在我做错了什么在这里的任何想法?

编辑:

喔,几乎忘了。问题是,xmlTree.Element("MyObject")返回一个空LINQ序列。尽管我已清楚的节点名为“MyObject来。”

有帮助吗?

解决方案

在XElement.Parse返回的XElement这是<MyObject>节点。尝试: -

变种名称= xmlTree.Element( “属性”)元素( “姓名”)值;

其他提示

此外什么以前的海报建议,您还可以从您的GenerateSomeXml返回一个XDocument()函数,以便您的LINQ工作。

        private static XDocument GenerateSomeXml()
    {
        return XDocument.Parse(@"<MyObject>
                            <Properties>
                               <Name>My object 1</Name>
                               <Position>0; 0; 0</Position>
                            </Properties>
                         </MyObject>");
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top