2012-03-22 2 views
0

Я ищу анализ XML-документа с Microsoft.XMLHTTP с помощью XPATH в VBScript. У меня есть следующая структура документа xhtml. Как получить массив URL-адресов?Анализ XHTML с помощью XPATH с использованием Microsoft.XMLHTTP в VBScript

<!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

Вы уверены, что вам нужно использовать устаревшую идентификатор программы 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-was-set.aspx) для C#. – Eugene

Смежные вопросы