Jeg står og mangler en kode(KOMPLET!), som der kan liste alle META-NAMES fra en HTML-kode. På de fleste HTML-sider på nettet, er der META-tags øverst i HTML-koden. Det er disse META-tags, jeg er interesseret i. Jeg kunne forstille mig, at alle META-NAMES bliver listet i en LISTBOX(eller lign.), og når man trykker på navnet, vil CONTENT(indholdet), af det valgte navn blive vist.
Koden skal kunne udføres, om der bliver brugt " eller ej, eller om name kommer før content, eller omvendt.
-- Ifølge Ekspertens regel §2.1.15 må der ikke udloves mere end 200 points: [ Det er ikke tilladt at] "udlove mere end 200 point for et spørgsmål ved at dele det over flere spørgsmål."
-- Hvad bruger du til at downloade siden med?: 1) Microsoft Internet Control 2) Winsock
Jeg bruger et API-KALD. Det er ikke noget problem at downloade den med. Men mit problem er egentlig at jeg skal kunne sotere alle META-tags'ne. Og det kunne være fedt, hvis nogen kunne komme med en komplet kode....
' Til eksemplet er brugt: ' ' Command-knap, navn: Command1 ' ListBox, navn: lstKey ' TextBox, navn: txtVal ' ' "D1" og "D2" = "Delimiter" 1 og 2, dvs seperatorer
Dim st, streng, tmp, tmpName, tmpValue As String ' strenge Dim ast, astreng ' arrays ("a" = array) Dim i As Integer ' tæller
' Et klik på Command1-knappen simulerer, at der er hentet en side ned. ' Jeg arbejder med et indhold, der ligner indholdet af "streng" (test-data) ' ' dobbelt ", dvs "", opfattes af VB som et enkelt " i en streng
' hent "name" (navnet, derfor "tmpName") If Mid(tmpName, Len("name=") + 1, 1) = Chr(34) Then tmpName = Mid(tmpName, Len("name=") + 2) tmpName = Left(tmpName, InStr(tmpName, Chr(34)) - 1) lstKey.AddItem tmpName streng = streng & tmpName End If
'' hent "content" (værdien, derfor "tmpValue") If Mid(tmpValue, Len("content=") + 1, 1) = Chr(34) Then tmpValue = Mid(tmpValue, Len("content=") + 2) tmpValue = Left(tmpValue, InStr(tmpValue, Chr(34)) - 1) streng = streng & "D1" & tmpValue & "D2" End If
' slet indholdet af navnet og værdien tmpName = "" tmpValue = "" Next
' fjern det sidste "D2" streng = Left(streng, Len(streng) - 2) End Sub
Private Sub lstKey_Click()
astreng = Split(streng, "D2")
For i = LBound(astreng) To UBound(astreng) If lstKey.List(lstKey.ListIndex) = Left(astreng(i), InStr(astreng(i), "D1") - 1) Then txtVal.Text = Mid(astreng(i), InStr(astreng(i), "D1") + 2) End If Next
det kan bruges til informationer :) F.eks., hvem sidens forfatter er, hvilket sprog, hvad siden indeholder, osv.. i gamle dage kiggede søgemaskinerne i meta-tagsne, for at se om de siderne havde det, der var søgt efter..
For j = 1 To Len(tmp3) If Mid(tmp3, j, 1) Like "[a-zA-Z0-9,æ,Æ,ø,Ø,å,Å]" Then tmp2 = tmp2 & Mid(tmp3, j, 1) Else Exit For End If Next
tmpValue = tmp2
streng = streng & "D1" & tmpValue & "D2" End If
'streng = streng & tmpName & "D1" & tmpValue & "D2" Next tmpName = "" tmpValue = "" streng = Left(streng, Len(streng) - 2) End Sub
Private Sub lstKey_Click() astreng = Split(streng, "D2")
For i = LBound(astreng) To UBound(astreng) If lstKey.List(lstKey.ListIndex) = Left(astreng(i), InStr(astreng(i), "D1") - 1) Then txtVal.Text = Mid(astreng(i), InStr(astreng(i), "D1") + 2)
Jeg tror at det ville være meget nemmere med noget RegExp.. men det kender jeg ikke godt nok.. eller, næsten ikke :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.