【问题标题】:Need a little help with Linq 2 xml在 Linq 2 xml 方面需要一点帮助
【发布时间】:2009-01-19 20:46:35
【问题描述】:

我有一个类似的场景:

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

【问题讨论】:

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


    【解决方案1】:

    XElement.Parse 返回一个 XElement,它是 &lt;MyObject&gt; 节点。试试:-

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

    【讨论】:

      【解决方案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>");
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多