需要Linq 2 xml的帮助

时间:2009-01-19 20:46:35

标签: c# xml linq-to-xml xelement

我有类似的情况:

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”的节点。

2 个答案:

答案 0 :(得分:3)

XElement.Parse返回一个XElement,它是<MyObject>节点。尝试: -

var name = xmlTree.Element(“Properties”)。元素(“名称”)。值;

答案 1 :(得分:2)

除了上一张海报建议的内容外,您还可以从GenerateSomeXml()函数返回一个XDocument,以便您的linq正常工作。

        private static XDocument GenerateSomeXml()
    {
        return XDocument.Parse(@"<MyObject>
                            <Properties>
                               <Name>My object 1</Name>
                               <Position>0; 0; 0</Position>
                            </Properties>
                         </MyObject>");
    }