Question

J'ai un scénario similaire à celui-ci:

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);
}

}

Ok, c'est très simplifié. .... mais cela ne fonctionnera toujours pas. Des idées sur ce que je fais mal ici?

Modifier:

Oh, j'ai presque oublié. Le problème est que xmlTree.Element("MyObject") retourne une séquence linq vide. Même si j’ai clairement un nœud nommé & "; MonObjet &";

Était-ce utile?

La solution

Le XElement.Parse renvoie un XElement qui est le nœud <MyObject>. Essayez: -

var name = xmlTree.Element (& "Propriétés &";). Element (& "Nom &";). Valeur;

Autres conseils

Outre les suggestions de la précédente affiche, vous pouvez également renvoyer un XDocument à partir de votre fonction GenerateSomeXml () afin que votre linq fonctionne.

        private static XDocument GenerateSomeXml()
    {
        return XDocument.Parse(@"<MyObject>
                            <Properties>
                               <Name>My object 1</Name>
                               <Position>0; 0; 0</Position>
                            </Properties>
                         </MyObject>");
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top