두 태그 사이에 내부 텍스트를 가져 와서 출력을 두 개의 레이블로 가져 오기 - VB.NET - HtmlAgilityPack

html html-agility-pack innertext vb.net

문제

나는 예제를 찾고자했지만 많은 일을하는 것처럼 보이지 않는다. 그래서 HtmlAgilityPack을 사용하고 있는데 두 개의 특정 태그 사이에 내부 텍스트를 가져 오려고합니다.

예:

<br>Terms of Service<br></br>Developers<br>

첫 번째 <br><br> 을 label1에, 두 번째를 </br><br> 을 label2로 가져 오는 innertext를 원합니다.

그럴거야.

Label1.text = "서비스 약관"
Label2.text = "개발자"

어떻게 달성합니까 / 할 /이 얻을? 추신; HtmlAgilityPack에 익숙하지 않아서 어떻게하는지 보여주는 코드가 더 잘됩니다. :-)

감사

수락 된 답변

이것은 좀 더러운 일이지만 작동해야합니다.

Imports System.Text.RegularExpressions

  Dim mystring As String = "<br>Terms of Service<br></br>Developers<br>"

    Dim pattern1 As String = "(?<=<br>)(.*?)(?=<br>)"
    Dim pattern2 As String = "(?<=</br>)(.*)(?=<br>)"

    Dim m1 As MatchCollection = Regex.Matches(mystring, pattern1)
    Dim m2 As MatchCollection = Regex.Matches(mystring, pattern2)
    MsgBox(m1(0).ToString)
    MsgBox(m2(0).ToString)

인기 답변

짧은 대답은 HAP이 당신의 업무를 수행하기에 적절하지 않다는 것입니다. 아래 내 메모 :

Imports HtmlAgilityPack

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim mystring As String = "<BR>Terms of Service<BR></BR>Developers<BR>"
        Dim myDoc As HtmlAgilityPack.HtmlDocument = New HtmlAgilityPack.HtmlDocument
        myDoc.LoadHtml(mystring)
        ' here we notice HAP immediately discards the junk tag </br>
        MsgBox(myDoc.DocumentNode.OuterHtml)

        ' Below we notice that HAP did not close the BR tag because it only 
        ' attempts to close 
        ' certain nested tags associated with tables ( th, tr, td) and lists 
        ' ( li ). 
        ' if this was a supported tag that HAP could fix, the fixed output 
        ' would be as follows: 
        ' <br>Terms of Service<br></br>Developers<br></br></br>
        ' this string would be parsed as if the last tag closes the first 
        ' and each set of 
        ' inner tags close themselves without any text between them. 
        ' This means even if you changed BR to TD, or some other tag HAP 
        ' fixes nesting on, it 
        ' still would not help to parse this correctly.  
        ' Also HAP does not appear to support XHTML in this .net 2.0 version.  

        myDoc.OptionFixNestedTags = True
        MsgBox(myDoc.DocumentNode.OuterHtml)

        ' here we put the BR tag into a collection.  as it iterates through 
        ' the tags we notice there is no inner text on the BR tag, presumably 
        ' because of two reasons.  
        ' 1. HAP will not close a BR.  
        ' 2. It does not fix your broken nested tags as you expect or required.  

        Dim myBR As HtmlNodeCollection = myDoc.DocumentNode.SelectNodes("//BR")
        If Not myBR Is Nothing Then
            For Each br In myBR
                MsgBox(br.InnerText)
            Next
        End If
    End Sub

End Class



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.