VB.net 如何讓流閱讀器忽略某些行? (VB.net how to make stream reader ignore some line?)


問題描述

VB.net 如何讓流閱讀器忽略某些行? (VB.net how to make stream reader ignore some line?)

i am using a stream reader to get the HTML of some page, but there are lines that i want to ignore, such as if a line starts with <span> 

any advice? Here is my function

Public Function GetPageHTMLReaderNoPrx(ByVal address As Uri) As StreamReader
  Dim request As HttpWebRequest
  Dim response As HttpWebResponse = Nothing
  Dim reader As StreamReader

  Try
    request = DirectCast(WebRequest.Create(address), HttpWebRequest)
    response = DirectCast(request.GetResponse(), HttpWebResponse)

    Select Case CType(response, Net.HttpWebResponse).StatusCode
      Case 200
        reader = New StreamReader(response.GetResponseStream(), Encoding.Default)

      Case Else
        MsgBox(CType(response, Net.HttpWebResponse).StatusCode)
    End Select
  Catch
    If Not response Is Nothing Then response.Close()
  End Try
  Return reader
End Function

this is how the HTML looks like

<tr>Text
<span>show all</span>
</tr>

‑‑‑‑‑

參考解法

方法 1:

If you insist on using strings, you could do something like this:

<pre class="lang‑vb prettyprint‑override">Do   Dim line As String = reader.ReadLine()   If line Is Nothing Then Exit Do 'end of stream   If line.StarsWith("<span>") Then Exit Do 'ignore this line   'otherwise do some processing here   '... Loop </pre>

But this approach is not stable ‑ any minor change in the input HTML can break your flow.

More elegant solution would be using XElement:

Dim xml = <tr>Text
            <span>show all</span>
          </tr>
xml.<span>.Remove()
MsgBox(xml.Value.Trim)

(by user1570048Victor Zakharov)

參考文件

  1. VB.net how to make stream reader ignore some line? (CC BY‑SA 3.0/4.0)

#string #httpwebrequest #streamreader #vb.net






相關問題

VB.net 如何讓流閱讀器忽略某些行? (VB.net how to make stream reader ignore some line?)

Perl Text::CSV_XS 從字符串中讀取 (Perl Text::CSV_XS read from string)

在 D3 中用逗號格式化數字 (Formatting numbers with commas in D3)

我應該使用什麼-String 或 StringBuilder 將 SQL 查詢存儲在使用許多不同 SQL 查詢的代碼中 (what should i use-String or StringBuilder for storing SQL queries in a code which uses many different SQL queries)

在 python 3.5 的輸入列表中添加美元符號、逗號和大括號 (Adding dollar signs, commas and curly brackets to input list in python 3.5)

使用正則表達式處理字符串 (String Manipulation with regular expression)

如何區分數字字符串和字符串? (How do i distinguish between number string and character string?)

如何將單詞的結尾與 Ruby 中的哈希進行比較? (How can I compare the ending of a word with a hash in Ruby?)

在 Python 列表中查找位於特定字符串之間的字符串 (Find Strings Located Between Specific Strings in List Python)

大寫替代字母 (Alternate letters in upper case)

查找 ia strn 列在同一數據框中的列表列中,並創建具有值的第三列 (Find ia a strn column is in a list column in the same data frame and create a 3rd column with a value)

在算術表達式中使用字符串是否安全? (Is it safe to use strings in arithmetic expressions?)







留言討論