Frage

Ich habe ein ähnliches Szenario wie diese:

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, das ist sehr vereinfacht. .... aber es wird nicht noch Arbeit. Alle Ideen, was ich falsch mache hier?

Edit:

Oh, fast vergessen. Das Problem ist, dass xmlTree.Element("MyObject") gibt eine leere Linq-Sequenz. Auch wenn ich einen Knoten mit dem Namen „MyObject“ klar habe.

War es hilfreich?

Lösung

Die XElement.Parse gibt ein XElement, die der <MyObject> Knoten ist. Versuchen Sie: -

var name = xmlTree.Element ( "Eigenschaften") Element ( "Name") Wert;..

Andere Tipps

Neben dem, was das vorherige Plakate vorgeschlagen, können Sie auch eine XDocument aus Ihrem GenerateSomeXml zurückkehren () Funktion, so dass Ihre Linq arbeiten.

        private static XDocument GenerateSomeXml()
    {
        return XDocument.Parse(@"<MyObject>
                            <Properties>
                               <Name>My object 1</Name>
                               <Position>0; 0; 0</Position>
                            </Properties>
                         </MyObject>");
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top