I'm a newbie to the forum.
I have an issue and was hoping to get some assistance/ideas:
Im trying to read a XML file into two record sets.
I can acheive looping through the first level element but i can not loop the the second level (child elements), any ideas??
I need to be able to loop thru each patient record and read into rsPatMeals and secondly loop thru each <meal_selecte d> and read into rsMeals.
---- xml file---
Expand|Select|Wrap|Line Numbers
- <Hospital>
- <PATIENT>
- <ur>ppp</ur>
- <area>Wards</area>
- <meal_selected>
- <menuno>67</menuno> <mod1>4</mod1>
- <mod2>12</mod2>
- </meal_selected>
- <meal_selected>
- <menuno>13</menuno> <mod1>1</mod1>
- <mod2>0</mod2>
- </meal_selected>
- <meal_selected>
- <menuno>120</menuno> <mod1>0</mod1>
- <mod2>0</mod2>
- </meal_selected>
- <meal_selected>
- <menuno>124</menuno> <mod1>9</mod1>
- <mod2>0</mod2>
- </meal_selected>
- </PATIENT>
- <PATIENT>
- <ur>mmm</ur>
- <area>Wards</area>
- <meal_selected>
- <menuno>7</menuno> <mod1>0</mod1>
- <mod2>0</mod2>
- </meal_selected>
- <meal_selected>
- <menuno>22</menuno> <mod1>19</mod1>
- <mod2>0</mod2>
- </meal_selected>
- <meal_selected>
- <menuno>86</menuno> <mod1>0</mod1>
- <mod2>0</mod2>
- </meal_selected>
- <meal_selected>
- <menuno>153</menuno> <mod1>0</mod1>
- <mod2>16</mod2>
- </meal_selected>
- </PATIENT>
- </Hospital>
---VB 6 Code----
Expand|Select|Wrap|Line Numbers
- Dim objXMLDOM_patmls As New MSXML2.DOMDocument40
- Dim objPatNodesList As IXMLDOMNodeList
- Dim objPatientNode As IXMLDOMNode
- Dim objMealNodes As IXMLDOMNodeList
- Dim rsPatMeals As New ADODB.Recordset
- Dim rsMeals As New ADODB.Recordset
- Dim pstrSQL As String
- objXMLDOM_patmls.async = False
- objXMLDOM_patmls.Load(App.path & "\xml\patMeals.xml")
- Set rsPatMeals = CreateObject("ADODB.Recordset")
- Set rsMeals = CreateObject("ADODB.Recordset")
- Set objPatNodesList =_
- objXMLDOM_patmls.selectNodes("Hospital/PATIENT")
- Set objMealNodes =_ objXMLDOM_patmls.selectNodes"Hospital/PATIENT/meal_selected")
- For Each objPatientNode In objPatNodesList
- rsPatMeals.AddNew
- rsPatMeals.Fields("UR") = objPatientNode.selectSingleNode("ur").nodeTypedValue
- rsPatMeals.Fields("AREA") = objPatientNode.selectSingleNode("area").nodeTypedValue
- rsPatMeals.Fields("WARD") = objPatientNode.selectSingleNode("ward").nodeTypedValue
- rsPatMeals.Fields("BED") = objPatientNode.selectSingleNode("bed").nodeTypedValue
- rsPatMeals.Fields("CYCLE") = objPatientNode.selectSingleNode("cycle").nodeTypedValue
- rsPatMeals.Fields("DOW") = objPatientNode.selectSingleNode("dow").nodeTypedValue
- rsPatMeals.Fields("MLDATE") = objPatientNode.selectSingleNode("mldate").nodeTypedValue
- rsPatMeals.Fields("MEALMODS") = objPatientNode.selectSingleNode("mealmods").nodeTypedValue
- rsPatMeals.Fields("DISCHARGED") = 0 'current ur to be checked against pmi to determin
- rsPatMeals.Fields("SOURCE") = objPatientNode.selectSingleNode("source").nodeTypedValue
- rsPatMeals.Fields("FMSUSER") = "PDS"
- rsPatMeals.Fields("FMSUSERUPDATE") = Now()
- rsPatMeals.Update
- Next objPatientNode
Any help would be greatly appreciated