Excel 2013 в Windows 7. XPath
/Javascript
/jQuery
не входит в сферу применения.VBA/DOM - Получить элементы на основе атрибута
Я пытаюсь перебрать элементы div
на странице, а именно элементы, которые имеют определенный атрибут data-level
.
Мой текущий подход - similar to this, но мне не удалось найти не-ручной способ выбора элементов на основе атрибутов. Ближайший я пришел что-то вроде:
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", url, False
.Send
pHTML.body.innerHTML = .ResponseText
End With
Set eCollection = pHTML.getElementsByClassName("chapter").getElementsByTagName("div")
For i = 0 To eCollection.Length
If eCollection(i).getAttribute("data-level") >= 0 Then ' Throw cake
Next i
это решение, в то время как я уверен, что он жизнеспособен (если unelegant), кажется неоптимальным, если только для того, как большой цикл будет в конечном итоге, когда я начинаю ищет конкретные элементы и последовательности элементов в пределах эти элементы.
Так что я искал способ, чтобы сделать что-то вроде этого:
For Each pElement In pHTML.getElementsByClassName("chapter").getElementsByTagName("div").getElementsByAttribute("data-level")
' Throw cake at the element
Next
Я знаю, что не существует никакого метода getElementsByAttribute
, отсюда вопрос.
Есть ли какой-то подход здесь, что я слепой, или я заблокирован для ручной итерации?
В качестве альтернативы, если поменять мой текущий подход для создания экземпляра IE, а ля this answer, я мог concievably использовать querySelectorAll
, чтобы в конечном итоге с чем-то, напоминающим результат я описал выше?
querySelectorAll должен работать, в качестве альтернативы вы можете использовать ExecScript и использовать инструкцию jquery. Что-то вроде этого ответа: http://stackoverflow.com/questions/9032618/find-elements-attribute-value. Я считаю использование jquery чистым способом сделать это, когда мне нужно найти сложный элемент. –
Я не кодирую много JS/jQuery, но я думаю, мне нужно будет узнать, не могу ли я заставить 'querySelector' работать. Спасибо за ввод. – Vegard