Tänk er typ denna snutt med html:
<div id="dochead"><p>sidhuvud</p><p>lite mer text</p><p>eller tabeller m.m.</p></div>
<div id="docbody"><p>lite mer text</p><p>eller tabeller m.m.</div>
<div id="docfoot"><p>sidfot</p><p>lite mer text</p><p>eller tabeller m.m.</div>
Går det med regexp hämta ut det som finns mellan de tre olika divarna.
typ:
Public Function GetContent(source as string) as HashTable
' Kod..
return aHashTableWithFooterHtmlBodyHtmlHeadHtml
End Function
Fråga mig om nu inte förstår vad jag syftar på. :)
KuckelMedlem sedan jan. 2002104 inlägg Testa med nåt sånt här ..
'Värdet mellan 2 html-taggar
Dim regex As Regex = New Regex("<td((.|\n)*?)</td>", RegexOptions.IgnoreCase)
Dim oM As Match = regex.Match(strContent)
Return oM.Value
'LOOPA värdet mellan tr - /tr div i ditt fall
Dim reg As New System.Text.RegularExpressions.Regex("<tr[^>]*>(.*?)</tr>", RegexOptions.Singleline)
Dim matchs As System.Text.RegularExpressions.MatchCollection
matchs = reg.Matches(strContent)
For Each m As System.Text.RegularExpressions.Match In matchs
'm.Value
Next
Har två frågor:
1. Kommer divarna kunna innehålla fler divar?
2. hur har du tänkt att det skall fungera? "GetDiv("dochead")" => <p>sidhuvud</p><p>lite mer text</p><p>eller tabeller m.m.</p>
KuckelMedlem sedan jan. 2002104 inlägg Hej
Så duktig på reqular är jag inte :) tror inte den kan innehålla fler divar.
Function GetDocHead(byval DocHead as string)as string
Dim reg As New System.Text.RegularExpressions.Regex("<div[^>]*>(.*?)</div>", RegexOptions.Singleline)
Dim matchs As System.Text.RegularExpressions.MatchCollection
matchs = reg.Matches(strContent)
For Each m As System.Text.RegularExpressions.Match In matchs
if m.value.contains(DocHead) Then
return 'm.Value
end if
Next
End function
Finns säkert ett bättre sätt att få ut detta med ReqularExpressions
GetDocHead bör returnera <p>sidhuvud</p><p>lite mer text</p><p>eller tabeller m.m.</p>
voigtann1 skrev:
Har två frågor:
1. Kommer divarna kunna innehålla fler divar?
Ja divarna kan innehålla fler divar. Dock är det inte planerat. Men framtiden kan göra vad som helst med en.
voigtann1 skrev:
2. hur har du tänkt att det skall fungera? "GetDiv("dochead")" => <p>sidhuvud</p><p>lite mer text</p><p>eller tabeller m.m.</p>
Ja så kan man säga!
Returnera innehållet så: <div id="dochead"><p>Sidhuvud</p></div> blir <p>Sidhuvud</p>
:)