Тема: VBS: Парсинг HTML через MSXML
Здравствуйте, господа и возможно дамы (давно на форуме не был, возможно что то изменилось). Пришёл к Вам со следующим задачей: Нужно распарсить HTML документ средствами MSXML. Да, знаю криво и коряво и вообще так делать нельзя, но с последним апдейтом мелкомягких, htmlfile перестал парсить HTML код в ASP. Не буду вдаваться в подробности. Решил попробовать парсить через MSXML.
Option Explicit
Dim DOMDocument
Set DOMDocument = HTMLToDOMDocument("<html><base></body>content</body></body>")
Function HTMLtoDOMDocument(htmlcode)
Dim DOMDocument: Set DOMDocument = CreateObject("Msxml2.FreeThreadedDOMDocument.6.0")
With DOMDocument
.validateOnParse = False
.resolveExternals = False
.PreserveWhiteSpace = True
.setProperty "ProhibitDTD",False
.setProperty "SelectionLanguage", "XPath"
.loadXml htmlcode
if .parseError <> 0 Then
With .parseError
Err.Raise .errorCode, "HTMLtoDOMDocument", .reason & vbCrlf & "line: " & .line & vbCrlf & "linePos:" & .linePos & vbCrlf & "srcText: " & .srcText
End With
End if
End With
Set HTMLtoDOMDocument = DOMDocument
End Function
Наваял вот такую функцию, чтобы МАКСИМАЛЬНО "отговорить" MSXML ругаться на косяки HTML кода, т.к грузить html придётся с разных источников. Но к сожалению от ошибки с незакрытыми тегами пока не получается "отучить". А такие тэги часто встречаются - <base> <input> <img>
Предполагаю, что можно решить проблему через RegExp. Рою в этом направлении, но регулярки даются мне очень тяжко. В связи с этим прошу помощи / совета / рекомендации. Заранее очень благодарен. )