2012-03-22 3 views
0

VBScript에서 XPATH를 사용하여 Microsoft.XMLHTTP로 xhtml 문서를 구문 분석하려고합니다. 나는 다음과 같은 xhtml 문서 구조를 가지고있다. 어떻게 URL 배열을 얻을 수 있습니까?VBScript에서 Microsoft.XMLHTTP를 사용하여 XPATH로 XHTML 구문 분석

<!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 이후로 서비스 팩을 지원하는 OS의 일부입니다. 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 blog] (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)에 대한 C#. – Eugene