![]() |
Reading through an XML file
Hi I was wondering you can provide me with some help. As a non programmer I'm pleased I've managed to cobble together some code which reads in an XML file but I'm struggling to look at anything other than the first record (of many. Here is an example of the xml of which there can be up to 10 records...... <records type="array" <record <offer <value type="decimal"7.6</value <for type="decimal"1.16</for </offer <seller <Number type="integer"24</Number <is-valid type="boolean"false</is-valid <nameSmith</name <is-correct type="boolean"false</is-correct </seller </record <record <offer <value type="decimal"2.03</value <for type="decimal"1.163</for </offer <seller <Number type="integer"184</Number <is-valid type="boolean"false</is-valid <nameJones</name <is-correct type="boolean"true</is-correct </seller </record What I want to do is to identify if the word, say, "Jones" appears in any seller elements by reading through the relevant records. It can appear in any or none of the "records". Can anyone help? Here is the relevant bits of my code (I hope!!!) Dim oXML As Object Dim oDom As Object Dim strResponse As String Dim strURL As String On Error GoTo Handler Set oXML = CreateObject("Microsoft.XMLHTTP") With oXML Open "GET", strURL, False 'Needed to web service will recognize get/post setRequestHeader "Content-Type", "application/x-www-form-urlencoded" send End With 'get the results strResponse = oXML.responseText Set oDom = CreateObject("MSXML.DOMDocument") oDom.LoadXML (strResponse) ' Check to see if there is an entry If oDom.DocumentElement.nodeName = "nil-classes" Then ' nothing there interesting mydata = 0 Else ' This sections adds detail to the spreadsheet where there is an existing sale offer and provide details mydata = oDom.DocumentElement.SelectSingleNode("record/offer/for").Text ' SOMEWHERE / SOMEHOW HERE I NEED TO LOOP THROUGH THE XML RECORDS BUT I CAN ONLY READ THE FIRST! END IF Many thanks for your help!!!! DEC -- dec3 ------------------------------------------------------------------------ dec3's Profile: 1398 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=172361 Microsoft Office Help |
Reading through an XML file
On 21/01/2010 23:14, dec3 wrote:
Hi <snip ' This sections adds detail to the spreadsheet where there is an existing sale offer and provide details mydata = oDom.DocumentElement.SelectSingleNode("record/offer/for").Text ' SOMEWHERE / SOMEHOW HERE I NEED TO LOOP THROUGH THE XML RECORDS BUT I CAN ONLY READ THE FIRST! END IF You need the selectNodes method. That returns a NodesList which ye can wander down using the .nextNode method once found how many in the list. Set oNList = oNode.selectNodes("record/offer/for") nTot = oNList.length - 1 For nCnt = 0 to nTot Set oThisNode = oXMLTreeList.nextNode() ' do whatever here for each node Next -- Adrian C |
Reading through an XML file
On 21/01/2010 23:36, Adrian C wrote:
Set oNList = oNode.selectNodes("record/offer/for") nTot = oNList.length - 1 For nCnt = 0 to nTot Set oThisNode = oXMLTreeList.nextNode() ' do whatever here for each node Next Whoops, bad cut n paste Set oThisNode = oNList.nextNode() -- Adrian C |
Reading through an XML file
Adrian C;620012 Wrote: On 21/01/2010 23:36, Adrian C wrote: Set oNList = oNode.selectNodes("record/offer/for") nTot = oNList.length - 1 For nCnt = 0 to nTot Set oThisNode = oXMLTreeList.nextNode() ' do whatever here for each node Next Whoops, bad cut n paste Set oThisNode = oNList.nextNode() -- Adrian C Hi Adrian / Others Sorry to continue to be thick on this but I now get msg "Object Required" Here is my updated code... Set oNList = oNode.SelectNodes("record/offer/for") nTot = oNList.Length - 1 For nCnt = 0 To nTot Set oThisNode = oNList.NextNode() ' do whatever here for each node mytext = oDom.DocumentElement.SelectNodes("record/seller/name").Text If mytext = "Jones" Then ' do stuff End If MsgBox (mytext) Next Any ideas please? DEC -- dec3 ------------------------------------------------------------------------ dec3's Profile: 1398 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=172361 Microsoft Office Help |
All times are GMT +1. The time now is 05:34 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com