Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


XML-parsing

Postades av 2006-02-13 05:22:19 - Jimmy Carlsson, i forum vb.net, Tråden har 3 Kommentarer och lästs av 1030 personer

Hej!
Behöver lite hjälp med att parsa en xml-fil. Filen hanterar matcher inom fotboll. Där hemmalagets och bortalagets spelare presenteras samt vilket betyg de fick i den specifika matchen.

Har följande struktur på min xml-fil

<code>

<matchid="1">
<playerdata>
<hometeam>
<player id="1">
<name>Nisse</name>
<position>1</position>
<rating>8</rating>
</player>
<player id="2">
<name>Kalle</name>
<position>2</position>
<rating>10</rating>
</player>
</hometeam>
<awayteam>
<player id="1">
<name>Sture</name>
<position>1</position>
<rating>8</rating>
</player>
<player id="2">
<name>August</name>
<position>2</position>
<rating>10</rating>
</player>
</awayteam>
</playerdata>
</matchid>

</code>



Sedan följer flera matcher...

Hur gör jag för att kunna plocka ut exempelvis "rating" i bara "hometeam" för en specifik match?

Använder mig av följande XmlTextReader och readToFollowing för att komma åt specifika element. Skulle vilja kunna nå alla element och attribut inom ett visst element exempelvis hometeam.

Exempelkod som summerar ratings:


matchId 'Inparameter för matchens id
 
Dim xtr As New XmlTextReader(xmlfile)
Dim summa As Double = 0
 
        While xtr.Read 
            xtr.ReadToFollowing("match") 
            If xtr.Name = "match" Then 
                If xtr.GetAttribute("id") = matchId Then 
                            xtr.ReadToFollowing("rating") 
                            If xtr.ReadString.Length > 0 Then 
                                summa = summa + CDbl(xtr.ReadString) 
                            End If 
                End If 
            End If 
        End While 



Problemet här är att jag bara får första spelarens rating, måste få in det i en snurra på nåt sätt och att det bara ska gälla hemmalaget.

Någon som har koll på sånt här?


Svara

Sv: XML-parsing

Postades av 2006-02-13 11:13:31 - Ola Lindfeldt

Det blir lurigt att lösa det med XmlTextReader..
(men om prestandakraven är höga så är det en bra lösning..)
Jag tycker du ska titta på xpath i stället, det passar bra för den här typen av problem.
http://www.developerland.com/DotNet/XMLNET/235.aspx


Svara

Sv:XML-parsing

Postades av 2006-02-13 13:56:09 - Jimmy Carlsson

Tack, har kikat lite lätt på det nu och det verkar helt klart ha potential.
Återkommer säkert då jag tittat mer på det =)


Svara

Sv:XML-parsing

Postades av 2006-02-16 22:13:34 - Jimmy Carlsson

Det fungerade bra med XPath, ruskigt smidigt.

Så här blev funktionen för att summera ratings till slut.

Private Function GetHomeRatings(ByVal file As String, ByVal matchId As String) As String
        Dim doc As New XmlDocument
        Dim nodelist As XmlNodeList
        Dim node As XmlNode
        Dim rating As String
        Dim summa As Double
        Try
            summa = 0
            doc.Load(file)
            nodelist = doc.DocumentElement.SelectNodes("/fc-team-matches/match[@id=" + matchId + "]/playerdata/hometeam/player/rating")

            For Each node In nodelist
                If node.InnerText <> "" Then 'Avbytarna har ingen rating
                    rating = Replace(node.InnerText, ".", ",") 'Byta punkt mot komma för att kunna räkna.
                    summa = summa + CDbl(rating)
                End If
            Next
        Catch ex As XPathException
            MsgBox("Xml filen ändrad" + ex.Message)

        Catch ex As Exception
            MsgBox("Annat fel: " + ex.Message)

        End Try
        Return CStr(summa)
End Function


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
562
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies