Я работаю над сценарием VBA для получения данных из XML-документа. Мне нужна помощь, чтобы изменить мой код XPath для поиска частичной строки вместо всей.
Это мое текущее выражение:
xmlhttpResponse.SelectNodes("/CharacteristicList/Characteristic[Name='ZCOMP_A_03']
/ComplexValueList/ValueItem/Value").Item(0).text
То, что я хотел бы сделать, это что-то вроде [Name='ZCOMP_A_']
, но, похоже, он не существует и не работает так. Я видел несколько кодов с начальными символами и содержит, но я хотел бы использовать XPath, похожий на уже использованный (если это возможно).
Это часть кода XML.
<CharacteristicList>
<Characteristic>
<Name>ZCOMP_A_03</Name>
<ValueList>
<ValueItem>
<Value>10.50</Value>
Обновление 1!
Я сделал некоторые изменения в соответствии с kjhughes, но я получаю ошибку «Неизвестный метод».
Это обновленный код:
Dim xmlhttpRequest As New MSXML2.xmlhttp
Dim xmlhttpResponse As New MSXML2.DOMDocument
xmlhttpResponse.setProperty "SelectionLanguage", "XPath"
Envelope = Envelope & "</soapenv:Envelope>"
xmlhttpRequest.Open "POST", "http://website.xyz"
xmlhttpRequest.setRequestHeader "Content-Type", "text/xml;charset=UTF-8"
xmlhttpRequest.setRequestHeader "SOAPAction", "http://website2.xyz"
xmlhttpRequest.send Envelope
Set xmlhttpResponse = xmlhttpRequest.responseXML
'Lenght_1 = xmlhttpResponse.SelectNodes("//Characteristic[Name='ZCOMP_A_03']/ComplexValueList/ValueItem/Value").Item(0).text Previous version
Lenght_2 = xmlhttpResponse.SelectNodes("//Characteristic[starts-with(Name,'ZCOMP_A_')]/ComplexValueList/ValueItem/Value").Item(0).text