Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    16

    [VB2010 WinForms] ID diverso tra ID uguali

    Salve a tutti, il titolo non è molto concreto ma sinceramente non sapevo come scrivere, poichè è un problema che non riesco a risolvere
    Allora, c'è una pagina con vari video(Non Youtube), e ognuno di questi ha un proprio ID. Io ottengo l'ID e tramite questo poi prendo le varie informazioni(Durata-numero di visite-punti che si guadagnano ecc.); ma c'è un piccolo problema, ci sono alcuni video che hanno un ID strutturato diverso, cioè invece di iniziare "pid_" iniziano per "pid__"
    Screen:

    Il codice che uso è questo:
    codice:
     Dim finale As String
            Dim finale2 As String
            Dim num As Integer
            Dim categorie As String
            Dim PageElement As HtmlElementCollection = WebBrowser1.Document.GetElementById("browse-video-catalog").GetElementsByTagName("ul")
            Dim CurElement As HtmlElement = WebBrowser1.Document.GetElementById("browse-video-catalog").GetElementsByTagName("li").Item(0)
            For Each CurElement In PageElement
    
                categorie = CurElement.InnerHtml
                num = categorie.IndexOf(":")
                'Link video
                finale = categorie.Substring(num, 33)
                finale2 = "http://lockerz.com/p/watch/" & finale
                'informazioni video tramite ID(Titolo-Durata-Punti ecc)
                finaleID = finale.Replace(":", "pid_")
     titolo = BrowserIE.Document.GetElementById(finaleID).GetElementsByTagName("li").Item(0).InnerText
                ptz = BrowserIE.Document.GetElementById(finaleID).GetElementsByTagName("li").Item(4).InnerText
                watched = BrowserIE.Document.GetElementById(finaleID).GetElementsByTagName("li").Item(5).InnerText
                durata = BrowserIE.Document.GetElementById(finaleID).GetElementsByTagName("li").Item(2).InnerText
     End If
            Next
    Ovviamente poi mi restituisce errore NullReference perchè quando incontra "pid__" il programma usa"pid_" e non so come prevenire questo errore, ho provato con un replace e return, mi funziona, ma poi invece di prendermi 48 video(Come dovrebbe) me ne prende molti di meno(25 circa)...
    Qualche idea??
    grazie mille

  2. #2
    se ci metti prima una condizione se è nothing allora Id=ID__ ?

    Del tipo
    codice:
    .......
    finaleID=finale.replace(":","ID_")
    if isNothing(BrowserIE.Document.GetElementById(finaleID)) then finaleID=finale.replace(":","ID__")
    titolo = BrowserIE.Document.GetElementById(finaleID).GetElementsByTag ..........
    Michele

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    16
    Dove lo dovrei inserire?

  4. #4

    Re: [VB2010 WinForms] ID diverso tra ID uguali

    questo è il tuo codice, lo inserita ed evidenziata in grassetto:
    codice:
     Dim finale As String
            Dim finale2 As String
            Dim num As Integer
            Dim categorie As String
            Dim PageElement As HtmlElementCollection = WebBrowser1.Document.GetElementById("browse-video-catalog").GetElementsByTagName("ul")
            Dim CurElement As HtmlElement = WebBrowser1.Document.GetElementById("browse-video-catalog").GetElementsByTagName("li").Item(0)
            For Each CurElement In PageElement
    
                categorie = CurElement.InnerHtml
                num = categorie.IndexOf(":")
                'Link video
                finale = categorie.Substring(num, 33)
                finale2 = "http://lockerz.com/p/watch/" & finale
                'informazioni video tramite ID(Titolo-Durata-Punti ecc)
                finaleID = finale.Replace(":", "pid_")
                if isNothing(BrowserIE.Document.GetElementById(finaleID)) then finaleID=finale.replace(":","ID__")
     titolo = BrowserIE.Document.GetElementById(finaleID).GetElementsByTagName("li").Item(0).InnerText
                ptz = BrowserIE.Document.GetElementById(finaleID).GetElementsByTagName("li").Item(4).InnerText
                watched = BrowserIE.Document.GetElementById(finaleID).GetElementsByTagName("li").Item(5).InnerText
                durata = BrowserIE.Document.GetElementById(finaleID).GetElementsByTagName("li").Item(2).InnerText
     End If
            Next
    controlla sempre che non ci siano orrori di sintassi, semmai correggi...
    Michele

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    16
    Ok provo e ti faccio sapere, grazie mille!

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    16
    mi da Un NullReference alla prima riga dopo il replace:
    codice:
    titolo=BrowserIE.Document.GetElementById(finaleID).GetElementsByTagName("li").Item(0).InnerText

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    16
    Anzi no ora funziona, era un errore nel mio codice, Grazie mille Michele, Sei un grande =D

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.