Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Daten suchen in XML-File mit XElement ??
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 399
Herkunft: Germany

Themenstarter:

Daten suchen in XML-File mit XElement ??

beantworten | zitieren | melden

verwendetes Datenbanksystem: <MSSQLExpress 2008>

Hi, habe ein Problem mit LINQ und XElement. Ich möchte das nachfolgende File (habe es nachfolgende beigefügt) den Wert von <P02_01> auslesen. Kriegs aber nicht gebacken, da ich mit LINQ auch noch nicht so frisch bin. Kann mir da jemand Beistsand leisten?

<?xml version="1.0" encoding="utf-8"?>
<Parameterfile>
  <Parameterdaten>
    <Diameters Numberrange="1" />
    <AxialLength Numberrange="2">
      <P2_01>24.3</P2_01>
      <P2_02>20</P2_02>
    </AxialLength>
    <RadialLength Numberrange="3">
      <P3_01>23.5</P3_01>
      <P3_02>19.01</P3_02>
    </RadialLength>
    <AnglesDimensions Numberrange="4" />
</Parameterdaten>
</Parameterfile>

Hier meine Abfrage. Funktioniert leider nicht. Entweder ich muß die Abfrage noch weiter verschachteln oder ich bin zu blöd für LINQ. Irgendwie muß ich an den Wert des Elemtes <P02_01> kommen .Value muß das sein.

Eigentlich habe ich gedacht dass es mit XElement auch relativ einfach sein sollte, weil man damit auch sehr toll und einfach XML-Files erstellen kann.


 private void btn_XmlLaden3_Click(object sender, EventArgs e)
        {

            textBox2.Clear();
            textBox1.Clear();

            // XDocument xdoc = XDocument.Load(@"c:\testStruktur.xml");

            XElement root = XElement.Load(@"c:\testStruktur.xml");


            var test = from el in root.Descendants()
                       where el.Name.ToString() == "P02_01"
                       select el;


            textBox1.Text = (string) test.Value;        /// Wie bekomme ich mit LINQ den Wert von <P02_01> ?????


        }

Hat jemand den treffenden Tipp für mich?
private Nachricht | Beiträge des Benutzers
Levitas
myCSharp.de - Member



Dabei seit:
Beiträge: 96

beantworten | zitieren | melden

Kann es vllt. sein, dass du nach "P02_01" suchst, welches aber "P2_01" heißt...?

Mfg Marc
private Nachricht | Beiträge des Benutzers
userid14268
myCSharp.de - Member



Dabei seit:
Beiträge: 1620

beantworten | zitieren | melden

Was soll den der Quatsch?

Warum holst du dir alle Nodes und vergleichst den namen? Hol dir doch direkt den Node anhand des namens.

=> Das sind doch absolute Basics.

var test = root.Descendants("P2_01").FirstOrDefault();
if (test != null)
{
textBox1.Text = test.Value;
}



PS. Strings braucht man nicht nochmal zu strings machen, ich denk da an dein el.Name.ToString() oder (string) test.Value
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 399
Herkunft: Germany

Themenstarter:

Falscher Eintrag in echtem Programm korrekt

beantworten | zitieren | melden

Nain daran liegts nicht. Dies war eine abgewandelte Form fürs Forum, da ist mir leider der Fehler passiert.
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 399
Herkunft: Germany

Themenstarter:

Funktioniert !!

beantworten | zitieren | melden

Super CSL, deine Lösung funzt. Natürlich schreibe ich das Quatsch, aber in der ganzen Hilfe von MSDN findet man auch kein solches Beispiel. Anahnd solcher Lösungen findet man dann auch selber wieder weiter . Bin aber bisher auf keinen rünen Zweig gekommen, da kann man auch gerne mal resignieren. Danke dir für die Hilfe.
private Nachricht | Beiträge des Benutzers