.xml Bestimmter wert auslesen

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von FAtheone.

    Hi,

    Ich wollte aus einer .xml datei etwas bestimmtes auslesen aber geht irg wie nicht

    Spoiler anzeigen

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wordzilla="http://www.cadenhead.org/workbench/wordzilla/namespace">
    2. <channel>
    3. <title>RauteMusik.FM - Playlist - #Musik.Club</title>
    4. <description>RauteMusik.FM - Playlist - #Musik.Club</description>
    5. <image>
    6. <title>RauteMusik.FM - Playlist - #Musik.Club</title>
    7. <url>http://www.RauteMusik.FM/images/rss/rssimg.gif</url>
    8. <link>http://www.RauteMusik.FM/playlist.php?section=club</link>
    9. </image>
    10. <link>http://www.RauteMusik.FM/playlist.php?section=club</link>
    11. <copyright>2004-2009 RauteMusik Media Limited/RauteMusik.FM</copyright>
    12. <managingEditor>Technik@RauteMusik.FM</managingEditor>
    13. <webMaster>Technik@RauteMusik.FM</webMaster>
    14. <pubDate>Sun, 12 Dec 2010 17:55:30 +0200</pubDate>
    15. <lastBuildDate>Sun, 12 Dec 2010 17:55:30 +0200</lastBuildDate>
    16. <generator>RMFM-RSSFeeder.NET</generator>
    17. <ttl>5</ttl>
    18. <item>
    19. <title><![CDATA[Italobrothers - Radio Hardcore]]></title>
    20. <link>http://www.rautemusik.fm/playlist.php?section=club</link>
    21. <description><![CDATA[Italobrothers - Radio Hardcore
    22. Gespielt von: Alphadox]]></description>
    23. <author>@RauteMusik.FM</author>
    24. <category>Playlist - #Musik.Club</category>
    25. <pubDate>Sun, 12 Dec 2010 17:48:38 +0200</pubDate>
    26. </item>
    27. <item>
    28. <title><![CDATA[Black Toys - 5th Symphony]]></title>
    29. <link>http://www.rautemusik.fm/playlist.php?section=club</link>
    30. <description><![CDATA[Black Toys - 5th Symphony
    31. Gespielt von: Alphadox]]></description>
    32. <author>@RauteMusik.FM</author>
    33. <category>Playlist - #Musik.Club</category>
    34. <pubDate>Sun, 12 Dec 2010 17:45:50 +0200</pubDate>
    35. </item>
    36. <item>
    37. <title><![CDATA[Ti-Mo - To The Back]]></title>
    38. <link>http://www.rautemusik.fm/playlist.php?section=club</link>
    39. <description><![CDATA[Ti-Mo - To The Back
    40. Gespielt von: Alphadox]]></description>
    41. <author>@RauteMusik.FM</author>
    42. <category>Playlist - #Musik.Club</category>
    43. <pubDate>Sun, 12 Dec 2010 17:42:39 +0200</pubDate>
    44. </item>


    und hir will ich den title und autor auslesen

    Spoiler anzeigen

    XML-Quellcode

    1. <title><![CDATA[Italobrothers - Radio Hardcore]]></title>
    2. <link>http://www.rautemusik.fm/playlist.php?section=club</link>
    3. <description><![CDATA[Italobrothers - Radio Hardcore
    4. Gespielt von: Alphadox]]></description>
    5. <author>@RauteMusik.FM</author>


    vb code
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub RauteMusik()
    2. 'Die Deklaration der Informationen
    3. Dim radioname As String = ""
    4. Dim radioautor As String = ""
    5. ' Dim radioshow As String = ""
    6. 'Die XML downloaden
    7. Dim a As New WebClient
    8. a.DownloadFile(New Uri("http://www.rautemusik.fm/playlist/club.xml"), "club.xml")
    9. a.Dispose()
    10. 'Das XML Document Laden
    11. Dim xml As XDocument = XDocument.Load("club.xml")
    12. 'Den Namen des Radiosenders auslesen
    13. For Each Name As XElement In xml.<item>.<title>(0).<title>
    14. radioname = title
    15. Next
    16. 'Informationen in ein Array packen, muss man eigentlich nicht aber ich finde es so besser
    17. Dim RauteMusik(12) As String
    18. RauteMusik(0) = radioname
    19. ' RauteMusik(1) = radiomoderator
    20. ' RauteMusik(2) = radioshow
    21. lvwAddItem(ListView1, RauteMusik(0), RauteMusik(1), RauteMusik(2))
    22. End Sub



    Edit by LaMa5:
    - hat nichts mit Datenbankprogrammierung zu tun
    -->*moved* (=> Hauptforum)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMa5“ ()

    Also ein kurzes Beispiel mit LINQ to XML:
    Meine Beispiel XML Datei:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <root>
    3. <Geraet>
    4. <Link>
    5. <Homepage>ereichbar</Homepage>
    6. <IP>10.186.216.10</IP>
    7. <Ping>Ja</Ping>
    8. </Link>
    9. <Link>
    10. <Homepage>ereichbar</Homepage>
    11. <IP>127.0.0.1</IP>
    12. <Ping>Ja</Ping>
    13. </Link>
    14. </Geraet>
    15. </root>


    Wenn ich jetzt <Homepage>ereichbar</Homepage> von dem ersten Element auslesen will kann ich das mit:

    VB.NET-Quellcode

    1. XDocument xDoc = XDocument.Load("info.xml");
    2. String content = xDoc.Element("root").Element("Geraet").Element("Link").Element("Homepage").Value;


    Wenn ich alle Elemente auslesen will:

    VB.NET-Quellcode

    1. For Each element As XElement In xDoc.Element("root").Element("Geraet").Elements()
    2. Dim content As String = element.Element("Homepage").Value
    3. Next

    VB.NET-Quellcode

    1. Private Sub RauteMusik()
    2. Dim aName As String = ""
    3. Dim aTrack As String = ""
    4. Dim aAuthor As String = ""
    5. Dim WebC As New WebClient
    6. WebC.DownloadFile(New Uri("http://www.rautemusik.fm/playlist/club.xml"), "club.xml")
    7. WebC.Dispose()
    8. 'Das XML Document Laden
    9. Dim xml As XDocument = XDocument.Load("club.xml")
    10. 'Den Namen des Radiosenders auslesen
    11. For Each Name As XElement In xml.Element("item").Elements()
    12. Dim RadioName As String = Name.Element("title").Value
    13. aName = RadioName
    14. Next
    15. For Each Track As XElement In xml.Element("item").Elements()
    16. Dim RadioTrack As String = Track.Element("description").Value
    17. aTrack = RadioTrack
    18. Next
    19. For Each Author As XElement In xml.Element("item").Elements()
    20. Dim RadioAuthor As String = Author.Element("author").Value
    21. aTrack = RadioAuthor
    22. Next
    23. Dim rautemusik(2) As String
    24. rautemusik(0) = aName
    25. rautemusik(1) = aTrack
    26. rautemusik(2) = aAuthor
    27. lvwAddItem(ListView1, rautemusik(0), rautemusik(1), rautemusik(2))
    28. End Sub


    so ist mein code jetzt aber ich bekomme immer noch eine fehler meldung

    Quellcode

    1. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

    bei

    VB.NET-Quellcode

    1. For Each Name As XElement In xml.Element("item").Elements()
    Probier das mal aus :

    VB.NET-Quellcode

    1. Dim xml As New XDocument = XDocument.Load("club.xml")


    Stop :D Probiers so :

    VB.NET-Quellcode

    1. Dim doc As New XDocument
    2. doc = XDocument.Load("bla.xml")


    Gruß, Trudi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trudi“ ()

    Ups ich sehe grad ich habe meinen charp code nicht wirklich gut in vb.net umgewandelt :(

    Versuch es mal so:

    VB.NET-Quellcode

    1. Dim xml As XDocument = new XDocument()
    2. xml.Load("club.xml")


    Das Objekt muss vorher mit new instanziert werden.

    Bzw das ist ja gar nicht die Fehlerquelle^^

    So müsste es gehen:

    VB.NET-Quellcode

    1. For Each Name As new XElement In xml.Element("item").Elements()
    wenn ich da so mache kommt diese fehler meldung

    Quellcode

    1. Warnung Zugriff des freigegebenen Members, konstanten Members, Enumerationsmembers oder geschachtelten Typs über eine Instanz; der qualifizierende Ausdruck wird nicht ausgewertet.
    So jetzt hab ich es noch mal bei mir getestet mit vb.net:

    Diese Funktion klappt:

    VB.NET-Quellcode

    1. Sub ReadAllXML()
    2. Dim xDoc As XDocument = New XDocument()
    3. xDoc = XDocument.Load("info.xml")
    4. For Each item As XElement In xDoc.Element("root").Element("Geraet").Elements()
    5. Console.WriteLine(item.Element("Homepage").Value)
    6. Next
    7. End Sub
    da kommt dann wieder der erste fehler :pinch:

    nochmal die xml datei
    Spoiler anzeigen

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wordzilla="http://www.cadenhead.org/workbench/wordzilla/namespace">
    2. <channel>
    3. <title>RauteMusik.FM - Playlist - #Musik.Club</title>
    4. <description>RauteMusik.FM - Playlist - #Musik.Club</description>
    5. <image>
    6. <title>RauteMusik.FM - Playlist - #Musik.Club</title>
    7. <url>http://www.RauteMusik.FM/images/rss/rssimg.gif</url>
    8. <link>http://www.RauteMusik.FM/playlist.php?section=club</link>
    9. </image>
    10. <link>http://www.RauteMusik.FM/playlist.php?section=club</link>
    11. <copyright>2004-2009 RauteMusik Media Limited/RauteMusik.FM</copyright>
    12. <managingEditor>Technik@RauteMusik.FM</managingEditor>
    13. <webMaster>Technik@RauteMusik.FM</webMaster>
    14. <pubDate>Thu, 16 Dec 2010 15:50:42 +0200</pubDate>
    15. <lastBuildDate>Thu, 16 Dec 2010 15:50:42 +0200</lastBuildDate>
    16. <generator>RMFM-RSSFeeder.NET</generator>
    17. <ttl>5</ttl>
    18. <item>
    19. <title><![CDATA[Klubbingman Feat. Trixi Delgad - Love Message]]></title>
    20. <link>http://www.rautemusik.fm/playlist.php?section=club</link>
    21. <description><![CDATA[Klubbingman Feat. Trixi Delgad - Love Message
    22. Gespielt von: D-Ride]]></description>
    23. <author>@RauteMusik.FM</author>
    24. <category>Playlist - #Musik.Club</category>
    25. <pubDate>Thu, 16 Dec 2010 15:47:17 +0200</pubDate>
    26. </item>
    27. <item>


    und ich will den wert item > title auslesen

    VB.NET-Quellcode

    1. For Each item As XElement In xDoc.Element("rss").Element("channel").Element("Lied").Elements()
    2. Console.WriteLine(item.Element("title").Value)
    3. Next


    Dazu hab ich in der xml Datei noch den <Lied> Tag hizugefügt:

    XML-Quellcode

    1. <Lied>
    2. <item>
    3. <title><![CDATA[Klubbingman Feat. Trixi Delgad - Love Message]]></title>
    4. <link>http://www.rautemusik.fm/playlist.php?section=club</link>
    5. <description>
    6. <![CDATA[Klubbingman Feat. Trixi Delgad - Love Message
    7. Gespielt von: D-Ride]]>
    8. </description>
    9. <author>@RauteMusik.FM</author>
    10. <category>Playlist - #Musik.Club</category>
    11. <pubDate>Thu, 16 Dec 2010 15:47:17 +0200</pubDate>
    12. </item>
    13. <item>
    14. <title><![CDATA[dfgsdfg df gsdf gdf gdf]]></title>
    15. <link>http://www.rautemusik.fm/playlist.php?section=club</link>
    16. <description>
    17. <![CDATA[sdjflk sjdkflskdj flsdjk]]>
    18. </description>
    19. <author>@RauteMusik.FM</author>
    20. <category>Playlist - #Musik.Club</category>
    21. <pubDate>Thu, 16 Dec 2010 15:47:17 +0200</pubDate>
    22. </item>
    23. </Lied>