2012-03-22 52 views
0

我正在使用VBScript解析XPath中的Microsoft.XMLHTTP與xhtml文檔。我有以下的xhtml文檔結構。我將如何獲得一系列網址?在VBScript中使用Microsoft.XMLHTTP解析XHTML使用Microsoft.XMLHTTP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <title>Local index</title> 
    </head> 
    <body> 
     <table> 
      <tr> 
       <td> 
        <a href="url1.html">url1</a><br/> 
        <a href="url2.html">url2</a><br/> 
        <a href="url3.html">url3</a> 
       </td><td> 
        <a href="url1-1.html">url1-1</a><br/> 
        <a href="url2-1.html">url2-1</a><br/> 
        <a href="url3-1.html">url3-1</a> 
       </td> 
      </tr> 
     </table> 
    </body> 
</html> 

回答

0

你確定你需要使用陳舊的程序ID Microsoft.XMLHTTP?如今,MSXML 3和MSXML 6都是自Windows XP以來支持的操作系統的一部分。 至於使用XPath和MSXML 3,這裏是一個例子:

Dim doc 
Set doc = CreateObject("Msxml2.DOMDocument.3.0") 
doc.validateOnParse = False 
doc.resolveExternals = False 
If doc.load("file.xml") Then 
    doc.setProperty "SelectionLanguage", "XPath" 
    doc.setProperty "SelectionNamespaces", "xmlns:xhtml='http://www.w3.org/1999/xhtml'" 
    For Each link In doc.selectNodes("//xhtml:a") 
    WScript.Echo(link.getAttribute("href") & ": " & link.text) 
    Next 
Else 
    WScript.Echo(doc.parseError.reason) 
End If 
+0

謝謝!沒有意識到我必須設置選擇命名空間。我在[msdn博客]上找到了一個類似的例子(http://blogs.msdn.com/b/john_pollard/archive/2005/11/12/using-selectsinglenode-or-selectnodes-on-xml-where-the-default -namespace-has-been-set.aspx)。 – Eugene 2012-03-23 01:50:14

相關問題