I am doing this using Visual Foxpro
>>>
Expand|Select|Wrap|Line Numbers
- loResultXml = CreateObject("Microsoft.XMLDOM")
- With loResultXml
- .Async = .F.
- .Load(pcXmlFile)
- oPackage = .documentElement.SelectSingleNode("//Package")
- EndWith
- oActivities = oPackage.selectNodes("//Activity")
- FOR i = 0 TO oActivities.Length - 1
- oActivity = oActivities.Item(i)
- lcCode = oActivity.selectSingleNode"//Activity/Status/StatusCode/Code").text
- lcDate = oActivity.selectSingleNode("//Date").text
- lcTime = oActivity.selectSingleNode("//Time").text
- lcDesc = oActivity.selectSingleNode"//Status/StatusType/Description").text
- ENDFOR
- >>>
- The problem is that inside for loop, when i examine the xml content, it shows the correct xml node on each iteration. But selectSingleNode method always gives the data from the first oActivity block, even though oActivity.xml shows totally different xml content. For example, lcCode is always "KB" for all the iteration.
- Can somebody give me any kind of suggestion how to attack this problem?
- >>>
- The following is xml file to be parsed.
- >>>
- <?xml version="1.0"?>
- <TrackResponse>
- <Response>
- <TransactionReference>
- <CustomerContext>Example 1</CustomerContext>
- <XpciVersion>1.0001</XpciVersion>
- </TransactionReference>
- <ResponseStatusCode>1</ResponseStatusCode>
- <ResponseStatusDescription>Success</ResponseStatusDescription>
- </Response>
- <Shipment>
- <Package>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>AVENTURA</City>
- <StateProvinceCode>FL</StateProvinceCode>
- <PostalCode>33180</PostalCode>
- <CountryCode>US</CountryCode>
- </Address>
- <Code>M7</Code>
- <Description>RECEIVER</Description>
- <SignedForByName>ELINAM</SignedForByName>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>D</Code>
- <Description>DELIVERED</Description>
- </StatusType>
- <StatusCode>
- <Code>KB</Code>
- </StatusCode>
- </Status>
- <Date>20070115</Date>
- <Time>122500</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>HIALEAH</City>
- <StateProvinceCode>FL</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>OUT FOR DELIVERY</Description>
- </StatusType>
- <StatusCode>
- <Code>DS</Code>
- </StatusCode>
- </Status>
- <Date>20070115</Date>
- <Time>004500</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>HIALEAH</City>
- <StateProvinceCode>FL</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>DESTINATION SCAN</Description>
- </StatusType>
- <StatusCode>
- <Code>DS</Code>
- </StatusCode>
- </Status>
- <Date>20070115</Date>
- <Time>002900</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>HIALEAH</City>
- <StateProvinceCode>FL</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>ARRIVAL SCAN</Description>
- </StatusType>
- <StatusCode>
- <Code>AR</Code>
- </StatusCode>
- </Status>
- <Date>20070114</Date>
- <Time>201800</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>LOUISVILLE</City>
- <StateProvinceCode>KY</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>DEPARTURE SCAN</Description>
- </StatusType>
- <StatusCode>
- <Code>DP</Code>
- </StatusCode>
- </Status>
- <Date>20070113</Date>
- <Time>201800</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>LOUISVILLE</City>
- <StateProvinceCode>KY</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>LOCATION SCAN</Description>
- </StatusType>
- <StatusCode>
- <Code>LC</Code>
- </StatusCode>
- </Status>
- <Date>20070112</Date>
- <Time>124700</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>LOUISVILLE</City>
- <StateProvinceCode>KY</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>UNLOAD SCAN</Description>
- </StatusType>
- <StatusCode>
- <Code>UL</Code>
- </StatusCode>
- </Status>
- <Date>20070112</Date>
- <Time>123400</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>LOUISVILLE</City>
- <StateProvinceCode>KY</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>ARRIVAL SCAN</Description>
- </StatusType>
- <StatusCode>
- <Code>AR</Code>
- </StatusCode>
- </Status>
- <Date>20070112</Date>
- <Time>104800</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>HOUSTON</City>
- <StateProvinceCode>TX</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>DEPARTURE SCAN</Description>
- </StatusType>
- <StatusCode>
- <Code>DP</Code>
- </StatusCode>
- </Status>
- <Date>20070112</Date>
- <Time>074600</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>HOUSTON</City>
- <StateProvinceCode>TX</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>ARRIVAL SCAN</Description>
- </StatusType>
- <StatusCode>
- <Code>AR</Code>
- </StatusCode>
- </Status>
- <Date>20070112</Date>
- <Time>023000</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>STAFFORD</City>
- <StateProvinceCode>TX</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>DEPARTURE SCAN</Description>
- </StatusType>
- <StatusCode>
- <Code>DP</Code>
- </StatusCode>
- </Status>
- <Date>20070111</Date>
- <Time>230000</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <City>STAFFORD</City>
- <StateProvinceCode>TX</StateProvinceCode>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>I</Code>
- <Description>ORIGIN SCAN</Description>
- </StatusType>
- <StatusCode>
- <Code>OR</Code>
- </StatusCode>
- </Status>
- <Date>20070111</Date>
- <Time>183700</Time>
- </Activity>
- <Activity>
- <ActivityLocation>
- <Address>
- <CountryCode>US</CountryCode>
- </Address>
- </ActivityLocation>
- <Status>
- <StatusType>
- <Code>M</Code>
- <Description>BILLING INFORMATION RECEIVED</Description>
- </StatusType>
- <StatusCode>
- <Code>MP</Code>
- </StatusCode>
- </Status>
- <Date>20070111</Date>
- <Time>182327</Time>
- </Activity>
- </Package>
- </Shipment>
- </TrackResponse>