IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 7. diel - Čítanie XML Saxe v VB.NET

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
koncelikj
Člen
Avatar
koncelikj:10.5.2015 21:34

Hmm. A jak zachytit chybu, že soubor neexistuje? Popis na MSDN je na mě moc vědecký.

 
Odpovedať
10.5.2015 21:34
Avatar
Odpovedá na koncelikj
Michal Žůrek - misaz:10.5.2015 21:54

toto se neošetřuje jako chyba ale ošetřuje se to ještě před načítáním souboru podmínkou.

If Not System.IO.File.Exists(cestaKSouboru) Then
    ' soubor neexistuje
End If
 
Odpovedať
10.5.2015 21:54
Avatar
Josef Jeništa:17.3.2017 1:38

Na konci souboru jsme měl posledního člena 2x. Kód jsem trochu upravil. Po přidání uživatele jsem element vymazal (element = "") a teď to chodí, jak má. Omlouvám se, nevím jak se tady upravuje zdroják, aby to nebylo vše na levé straně.

Dim uzivatele As New List(Of Uzivatel)
Dim poc As Integer = 0
Using xr As XmlReader = XmlReader.Cre­ate("soubor.xml")
Dim jmeno As String = ""
Dim vek As Integer = 0
Dim registrovan As DateTime = DateTime.Now
Dim element As String = ""

While xr.Read()
If xr.NodeType = XmlNodeType.Element Then
element = xr.Name
If element = "uzivatel" Then
vek = xr.GetAttribu­te("vek")
ElseIf element = "uzivatele" Then
poc += 1
End If

ElseIf xr.NodeType = XmlNodeType.Text Then
Select Case element
Case "jmeno"
jmeno = xr.Value
Case "registrovan"
registrovan = DateTime.Parse(xr­.Value)
End Select

ElseIf (xr.NodeType = XmlNodeType.En­dElement) And (element = "registrovan") Then
If poc <> 2 Then
uzivatele.Add(New Uzivatel(jmeno, vek, registrovan))
element = ""
End If
End If
End While
End Using

Odpovedať
17.3.2017 1:38
Kolik jazyků umíš, tolikrát jsi programátorem.
Avatar
Josef Jeništa:17.3.2017 1:41

Zapomněl jsem ze zdrojáku vyhodit načítání do poc (poc += 1) a dotaz na poc <> 2. Dal jsem si to tam kvůli ladění.

Odpovedať
17.3.2017 1:41
Kolik jazyků umíš, tolikrát jsi programátorem.
Avatar
Odpovedá na Josef Jeništa
Michal Štěpánek:17.3.2017 7:36

... nevím jak se tady upravuje zdroják, aby to nebylo vše na levé straně.

Zdroják se vkládá za pomoci tagů "code" - je to to druhé tlačítko zleva, hned vedle smajlíka...

Odpovedať
17.3.2017 7:36
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Josef Jeništa:17.3.2017 16:46

Takhle je to definitivně.

Dim uzivatele As New List(Of Uzivatel)
    Dim poc As Integer = 0
    Using xr As XmlReader = XmlReader.Create("soubor.xml")
      Dim jmeno As String = ""
      Dim vek As Integer = 0
      Dim registrovan As DateTime = DateTime.Now
      Dim element As String = ""

      While xr.Read()
        If xr.NodeType.ToString <> "Whitespace" Then
          If xr.NodeType = XmlNodeType.Element Then
            element = xr.Name
            If element = "uzivatel" Then
              vek = xr.GetAttribute("vek")
            End If

          ElseIf xr.NodeType = XmlNodeType.Text Then
            Select Case element
              Case "jmeno"
                jmeno = xr.Value
              Case "registrovan"
                registrovan = DateTime.Parse(xr.Value)
            End Select

          ElseIf (xr.NodeType = XmlNodeType.EndElement) And (element = "registrovan") Then
            uzivatele.Add(New Uzivatel(jmeno, vek, registrovan))
            element = ""
          End If
        End If
      End While
    End Using

    For Each u As Uzivatel In uzivatele
      Console.WriteLine(u)
    Next
    Console.ReadKey()
Odpovedať
17.3.2017 16:46
Kolik jazyků umíš, tolikrát jsi programátorem.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!