質問

これと似たシナリオがあります:

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シーケンスを返すことです。明らかに<!> quot; MyObject <!> quot;という名前のノードがありますが。

役に立ちましたか?

解決

XElement.Parseは、<MyObject>ノードであるXElementを返します。試してください:-

var name = xmlTree.Element(<!> quot; Properties <!> quot;)。Element(<!> quot; Name <!> quot;)。Value;

他のヒント

前のポスターが示唆したものに加えて、linqが機能するようにGenerateSomeXml()関数からXDocumentを返すこともできます。

        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