VB.NET .xml datei auslesen und im DataGrid wiedergeben

  • VB.NET
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von xtamersan.

    VB.NET .xml datei auslesen und im DataGrid wiedergeben

    Hallo,

    ich versuche gerade eine .xml Datei auszulesen und frage mich, ob es nur über die Ressourcen Möglichkeit funktioniert oder kann ich die .xml auch über die direkte HomePage auslesen.
    Habe mittlerweile mehrere Möglichkeiten auf google gefunden, aber keine funktioniert so richtig..
    Das ist die Seite


    Habe folgenden Code, der immer abschmiert ohne Fehlermeldung


    VB.NET-Quellcode

    1. Dim ds As New DataSet
    2. ds.ReadXml(My.Resources.eurofxref_daily)
    3. DataGridView1.DataSource = ds.Tables("Cube")


    Mit freundlichen Grüßen
    Tamersan

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Dein Dataset kennt das Schema ja auch nicht, entweder du baust das Schema nach (Datset mit Designer aufbauen), oder du versucht die entsprechende Methoden um das Schema auszulesen (habe ich nie selbst so probiert)
    learn.microsoft.com/de-de/dotn…oading-a-dataset-from-xml
    Ob das Einlesen so auch für deine Anwendung funktioniert musst du testen.
    Mit der XSD.EXE (Pfad ab: c:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\) kann man sich die Schemadatei auch "bauen" und in das Studio reinladen.
    Hallo,
    oder lies das Xml einfach manuell aus, ohne jetzt groß ein Schema zu bauen. Geht doch eh nur um die Wechselkurse:

    C#-Quellcode

    1. XmlDocument xmlDoc = new();
    2. xmlDoc.Load("https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
    3. XmlNamespaceManager xmlNsMgr = new(xmlDoc.NameTable);
    4. xmlNsMgr.AddNamespace("gesmes", "http://www.gesmes.org/xml/2002-08-01");
    5. xmlNsMgr.AddNamespace("x", "http://www.ecb.int/vocabulary/2002-08-01/eurofxref");
    6. XmlNodeList nodes = xmlDoc.SelectNodes("/gesmes:Envelope/x:Cube/x:Cube/x:Cube", xmlNsMgr);
    7. using DataTable dt = new();
    8. dt.Columns.Add(new DataColumn("Currency Code", typeof(string)));
    9. dt.Columns.Add(new DataColumn("Rate", typeof(decimal)));
    10. foreach (XmlNode node in nodes)
    11. {
    12. DataRow row = dt.NewRow();
    13. row["Currency Code"] = node.Attributes["currency"].Value;
    14. row["Rate"] = decimal.Parse(node.Attributes["rate"].Value, CultureInfo.InvariantCulture);
    15. dt.Rows.Add(row);
    16. }