TottemannenMedlem sedan sep. 200620 inlägg
Jag har en tabell på en sida som jag vill läsa ut namnen och antal på.
<TABLE class=3Dcoolmenu>
<TBODY>
<TR>
<TD class=3Dleft>
<SPAN class=3Dbold> Kalle </SPAN> 8 st
<BR>
<SPAN=20 class=3Dbold >Nisse </SPAN> -5 st
<BR>
<SPAN =class=3Dbold> Ville </SPAN> 12 st
<BR>
<SPAN class=3Dbold> Valle = </SPAN> 99%
<BR>
</TD>
<TD class=3Dright> <SPAN class=3Dtemp> + 4 </SPAN>
<BR>
<IMG src=bla bla>
</TD>
</TR>
</TBODY>
</TABLE>
Har använt koden nedan. Frågan är vad patternmkoden ska vara. Har provat med massa alternativ men det blir fel, antingen en felkod eller en "vit" sida.
Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")
objHTTP.Open "GET","URL", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing
With New RegExp
.Global = false
.IgnoreCase = true
.Pattern = "<table class=3Dcoolmenu> ????????</table>"
Set hittade = .Execute(strHTML)
End With
For each item in hittade
Response.Write item.value & ""
Next
Set hittade = Nothing
Nån som har ett förslag??
voigtann1Medlem sedan juni 20018 810 inlägg
.Pattern = "<table class=3Dcoolmenu>([\S\s]+)</table>"
TottemannenMedlem sedan sep. 200620 inlägg
Tack för svaret.
Jag har provat, men det blir bara vitt på sidan.
Jag har provat med <table>.*</table>, då fungerar det, men alla tabeller på sidan visas. Så fort jag använder <table class=""3Dcoolmenu"">.*</table> så fungerar det inte. Nån som har en aning om varför det inte fungerar då?
Peter SMedlem sedan dec. 20025 484 inlägg
Din HTML har på vissa ställen tecken där sådana inte bör finnas, t.ex. "<SPAN=20 class=3Dbold >". Med följande uppstädade HTML:
<TABLE class=3Dcoolmenu>
<TBODY>
<TR>
<TD class=3Dleft>
<SPAN class=3Dbold> Kalle </SPAN> 8 st
<BR>
<SPAN class=3Dbold>Nisse </SPAN> -5 st
<BR>
<SPAN class=3Dbold> Ville </SPAN> 12 st
<BR>
<SPAN class=3Dbold> Valle = </SPAN> 99%
<BR>
</TD>
<TD class=3Dright> <SPAN class=3Dtemp> + 4 </SPAN>
<BR>
<IMG src=bla bla>
</TD>
</TR>
</TBODY>
</TABLE>
...och följande ASP-kod:
Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")
objHTTP.Open "GET","http://localhost/tmp.asp", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing
dim hittade
With New RegExp
.Global = false
.IgnoreCase = true
.Pattern = "<table class=3Dcoolmenu>(?:(?:.|\s)*?)</table>"
Set hittade = .Execute(strHTML)
End With
if hittade.count <> 0 then
dim s
s = hittade(0)
set hittade = nothing
with new regexp
.global = true
.ignorecase = true
.pattern = "<span class=3dbold>(.*?)</span>\s*((?:.|\s)*?)<br>"
set hittade = .execute(s)
end with
for i = 1 to hittade.count
response.write "[" & (i-1) & "]: name = " & hittade(i-1).submatches(0) & ", count = " & hittade(i-1).submatches(1) & "<br>"
next
end if
...får jag:
[0]: name = Kalle , count = 8 st
[1]: name = Nisse , count = -5 st
[2]: name = Ville , count = 12 st
[3]: name = Valle = , count = 99%
TottemannenMedlem sedan sep. 200620 inlägg
Tack för svaret!
Sidan jag hämtar värdena ur ser ut som jag beskrev, och jag kan alltså inte städa upp HTML.
Jag fick det tyvärr inte att fungera.
Jag har dock en annan fråga, jag försöker att hämta ett klockslag ur följande kod:
<td>
<img src="bla bla alt="bla bla""/>
08:44
</td>
och använder koden:
<%
Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")
objHTTP.Open "GET","URL", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "<td>.*</td>"
Set hittade = objRegExp.Execute(strHTML)
Set hittade = objRegExp.Execute(strHTML)
Response.Write "" & hittade(1) & "<br>"
%>
Svaret blir en tom ruta där bilden skulle vara och efter den kommer klockslaget.
Hur ska regexp pattern se ut för att "bilden" inte ska komma med, utan bara klockslaget?
Har läst om regexp pattern på diverse sidor men har inte koll på hur det ska vara.
Peter SMedlem sedan dec. 20025 484 inlägg
Exempel:
With New RegExp
.Global = false
.IgnoreCase = true
.Pattern = "<td>\s*<img[^>]+>\s*([^\s]*?)\s*</td>"
Set hittade = .Execute(strHTML)
End With
If hittade.count > 0 then
response.write hittade(0).submatches(0)
end if
TottemannenMedlem sedan sep. 200620 inlägg
Tack igen för svaret!
Nu ytterligare en fråga.
Finns det någon syntax för att kunna visa bilder från en annan sida? När man använder regexp blir det ju bara en ram där bilden skulle vara. Vad jag förstår så används regexp bara till text.