Ich versuche, Code zu schreiben, die durch diese DOM-Struktur sichten werden:Parsing DOM unter Verwendung von XML (VBA)
<html>
<head>
<body>
<table id="the-table" border="1">
<thead>
<tbody>
<tr> </tr>
<tr>
<td class="x-grid3-hd-inner" bgcolor="#8dd5e7" colspan="7">
</tr>
<tr>
<td class="x-grid3-hd-inner" bgcolor="#8dd5e7" colspan="7">
</tr>
<tr>
<tr>
<td class="oneline">2</td>
<td class="oneline">ENB</td>
<td class="oneline">2</td>
<td class="oneline">CELL_99</td>
<td class="oneline">255.255.255.0</td>
<td class="oneline">My Group</td>
<td class="oneline">*</td>
</tr>
<tr>
<tr>
<tr>
...
<tr>
<tr>
</tbody>
</table>
</body>
</html>
Ich versuche, den Text an jedem td Elemente für alle tr Elemente der Tabelle zu extrahieren. Ich habe ein Beispiel oben ausgedehnt. Alle td-Elemente der Tabelle werden mit der gleichen HTML-Struktur (neben dem Titel der Tabelle) formatiert. Dies ist die Methode, die ich bisher benutzt habe.
Sub ParseWebPage(url As String, sheet As String, searchCrit As String)
Dim objXML As MSXML2.DOMDocument
Set objXML = New MSXML2.DOMDocument
Set htm = CreateObject("htmlFile")
With CreateObject("msxml2.xmlhttp")
.Open "GET", url, False
.send
xmlresp = .responseText
End With
objXML.loadXML (xmlresp)
Dim objElem As MSXML2.IXMLDOMElement
Debug.Print xmlresp
objXML.loadXML (xmlresp)
Set objElem = objXML.selectSingleNode("tr")
Debug.Print "Found" & objElem.text
End Sub
Das Problem ist, jedes Mal, wenn mein ObjElem leer zurückkehrt. Ich habe auch versucht, eine NodeList anstelle von IXMLDOMElement zu verwenden, aber es wurde immer leer zurückgegeben.
Ich glaube, das Problem, das String-Argument. Ich habe versucht mit "tr", "oneline", "/ html/body/table/tbody", und erstellen Sie eine Schleife für jeden "/ html/body/table/tbody/tr [x]/td [y]" aber keiner von diesen war effektiv.
Kann mir hier jemand helfen?
kommentieren Ihre allgemeine Vorgehensweise ist richtig. Ich denke, das Problem ist nicht wohlgeformtes XML (welches HTML aus dem Internet oft ist). Ich sehe viele '
@LoganReed Die Website ist bereits vollständig erstellt und betriebsbereit und enthält alle schließenden Tags, es ist möglicherweise ein Kopierfehler aufgetreten. Ich werde auf diesen Link schauen und sehen, ob das hilft. –
Versuchen Sie zuerst mit einem sehr kleinen wohlgeformten XML-Beispiel und erweitern Sie es dann weiter, bis Sie den Fehler dann finden. –