Я пытаюсь изменить прекрасный фрагмент кода, который я получил от user2140261, который извлекает данные из базы данных XML EDBAR (XBRL-Template). Поэтому, поскольку я хочу также извлекать значения элементов из других узлов, моя первая идея заключалась в том, чтобы показать список с узлами экземпляра XML в MsgBox; используя childNodes Property. Первый маленький фрагмент кода, имеет незначительные изменения, я сделал, чтобы избежать путаницы, в то время как во втором мы видим исходный код плюс 3 заявления модификацийVBA XML ChildNodes
Dim Tiger As String
Tiger = objXMLNodexbrl.ChildNodes(1)
MsgBox Tiger
Sub GetNode()
Dim strXMLSite As String
Dim objXMLHTTP As MSXML2.XMLHTTP
Dim objXMLDoc As MSXML2.DOMDocument
Dim objXMLNodexbrl As MSXML2.IXMLDOMNode
Dim objXMLNodeDIIRSP As MSXML2.IXMLDOMNode
Dim Tiger As String
Set objXMLHTTP = New MSXML2.XMLHTTP
Set objXMLDoc = New MSXML2.DOMDocument
strXMLSite = "http://www.sec.gov/Archives/edgar/data/10795/000119312513456802/bdx-20130930.xml"
objXMLHTTP.Open "POST", strXMLSite, False
objXMLHTTP.send
objXMLDoc.LoadXML (objXMLHTTP.responseText)
Set objXMLNodexbrl = objXMLDoc.SelectSingleNode("xbrl")
Tiger = objXMLNodexbrl.ChildNodes(1)
MsgBox Tiger
Set objXMLNodeDIIRSP = objXMLNodexbrl.SelectSingleNode("us-gaap:DebtInstrumentInterestRateStatedPercentage")
Worksheets("Sheet1").Range("A1").Value = objXMLNodeDIIRSP.Text
End Sub
Итак, когда Я пытаюсь разобрать пошаговый код с помощью F8, я получаю «Ошибка выполнения 438», сообщающую мне, что объект не поддерживает это свойство или метод.
- Как это возможно, когда xbrl в экземпляре документа является корневым элементом и содержит все дочерние узлы?
@ user2140261 ничего себе ты так хорошо ... только один вопрос, я бы изменить свой код с
Tiger = objXMLNodexbrl.ChildNodes(1).Text
но я получаю численное значение элемента вместо количества узлов. Как это возможно? так ChildNodes собственности: "Содержит список, состоящий из узла, содержащего дочерние узлы" ...
Сэр я редактировал мой вопрос немного, так как вы были правы только, чтобы исправить это и увидеть другую вещь происходит: P – ExoticBirdsMerchant
@ExoticBirdsMerchant Посмотреть мой обновленный ответ. – user2140261
Сэр Спасибо вам большое! У MS нет примеров в MSXML2 для VBA только для C++ и JScript – ExoticBirdsMerchant