2014-03-12 57 views
0

我試圖找出一種方法來從HTML源代碼中使用Visual Studio 2010中創建的基於Visual Basic的應用程序提取信息。我想要做的是讓系統加載一個網頁(基於訂單號),並搜索分配給HTML標籤的值並返回該值。例如,在下面的HREF字符串:從HTML源提取變量

HREF = 「#」 類= 「lnk11blue」 的onClick =「parent.gotoPage('/ OE/cllctrshp_.html dlvyId = 26130700 & hdrId = 7205902 & lineId = 21188936 &? ordLnTyp = FEL SVC LINE','dWnd')「> 26130700

我希望該工具可以在」dlvyId =「之後或在href結尾處返回26130700。我遇到的問題是dlvyId會隨着每一個命令而改變,可能是hdrId和lineId值,那麼有沒有辦法讓我的程序在定位這個字符串之後讀取「dlvyId =」之後的值?還是有一種方法讓程序在查找字符串之後讀取大於克拉的文本?

我會亂搞,看看我能找到什麼(並希望張貼一些嘗試的代碼),但在此期間任何想法/幫助將不勝感激。

編輯:感謝史蒂夫,我有搜索字符串的功能。但是,現在我無法加載頁面源代碼。我試過下面的代碼,但它似乎不工作:

Dim objHttp as object 
Dim strURL As String 
Dim strText As String 
objHttp = CreateObject("MSXML2.ServerXMLHTTP") 
strURL = "http://companywebprd.tc.company.com/oe/cllctrord_.html?order_nbr=" & 
    RMA_Number.Text & "&customer_id=&po_nbr=&ord_date=&ord_cond=0&ord_kind=0&serial_nbr=&item_id= 
    &i_ord_type=&instance=&svcChk=1&custSiteUseId=0&custSiteUseCd=0" 
objHttp.Open("GET", strURL, False) 
objHttp.Send("") 

strText = objHttp.responsetext 

請教?我會繼續尋找周圍以及

+0

您使用的瀏覽器的控制? –

+0

嗨羅恩,我沒有使用瀏覽器控制,這將是有益的嗎?我對VB的那部分不是很熟悉...... – Alex

+0

是的。您可以導航到您在下面指定的頁面,並找到包含「href」的元素。如果你可以包含整個「href」元素,包括它的Id屬性(如果它有一個,但是類會做但更復雜)。我會發佈一個答案。 –

回答

1

這應該讓你開始正確的道路......

Sub test() 
Const mystring = "href='#' class='lnk11blue' onClick='parent.gotoPage('/oe/cllctrshp_.html?dlvyId=26130700&hdrId=7205902&lineId=21188936&ordLnTyp=FEL SVC LINE','dWnd')'>26130700'" 
If InStr(1, mystring, "dlvyId=") <> 0 Then 
    For i = InStr(1, mystring, "dlvyId=") To Len(mystring) 
     If Mid(mystring, i, 1) = "&" Then 
      Exit For 
     End If 
    Next i 
    MsgBox Mid(mystring, InStr(1, mystring, "dlvyId="), (i - InStr(1, mystring, "dlvyId="))) 
End If 
End Sub 
+0

剛剛在Excel中作爲測試運行,這幾乎完全是我想做的!現在我只需要獲得HTML源代碼,我應該很好。謝謝史蒂夫! – Alex