Quantcast
Channel: WinDev Forum
Viewing all articles
Browse latest Browse all 1914

Read XML File WD23 (2 replies)

$
0
0
Hello All,

Trying to read a xml file with 37,000 lines to Import into data files
the data will go in 5 different files
OrderHeader
OrderDetail
OrderOptions
PackingListItems
PackingList

First tried to use hImportxml but this has issues because the way the scheme of the xml file is set up. So I need to loop thru and get each data set separate.

-?xml version="1.0" encoding="ISO-8859-1"?-
(OrderAndShipments)  Root Node
    (OrderHeaders)   First Order Header
    (SONumber)00333861-00(/SONumber)
    (PONumber)N43510WL1(/PONumber)
    (OrderDate)060118(/OrderDate)
    (/OrderHeaders)
    (OrderHeaders)
    (SONumber)00333871-00(/SONumber)
    (PONumber)N43506WL1(/PONumber)
    (OrderDate)060118(/OrderDate)
    (/OrderHeaders) 
    (OrderDetails)  First Order Detail
    (SONumber)00341237-00(/SONumber)
    (OrderLineNumber)16.00(/OrderLineNumber)
    (Quantity)1.000(/Quantity)
    (ProductCode)B27(/ProductCode)
    (ProductDesciption)BASE 27 DRW(/ProductDesciption)
    (CabinetType)CB(/CabinetType)
    (Tag)ICP-815KIT-RS(/Tag)
    (OptionLines)3(/OptionLines)
    (/OrderDetails)
    (OrderDetails)
    (SONumber)00341237-00(/SONumber)
    (OrderLineNumber)17.00(/OrderLineNumber)
    (Quantity)1.000(/Quantity)
    (ProductCode)B30(/ProductCode)
    (ProductDesciption)BASE 30 DRW(/ProductDesciption)
    (CabinetType)CB(/CabinetType)
    (Tag)ICP-815KIT-RS(/Tag)
    (OptionLines)3(/OptionLines)
    (/OrderDetails)
    (OrderDetailOptions)
    (OrderDetailOptions)
    (SONumber)00341553-00(/SONumber)
    (OrderLineNumber)2.00(/OrderLineNumber)
    (OptionText)MITER RIGHT: MITRER(/OptionText)
    (/OrderDetailOptions)
    (OrderDetailOptions)
    (SONumber)00341553-00(/SONumber)
    (OrderLineNumber)2.00(/OrderLineNumber)
    (OptionText)MITER RIGHT: MITRER(/OptionText)
    (/OrderDetailOptions)
    (PackingListItems)
    (LoadNumber)4117127(/LoadNumber)
    (BOLNumber)101091240100(/BOLNumber)
    (TopLevelPackageID)(/TopLevelPackageID)
    (PackageID)003384550290000001(/PackageID)
    (PackageItemCount)1(/PackageItemCount)
    (PackageType)BOX(/PackageType)
    (PackageItemType)CABINETS(/PackageItemType)
    (SONumber)00338455-0(/SONumber)
    (OrderLineNumber)29.00(/OrderLineNumber)
    (ShippedQuantity)1(/ShippedQuantity)
    (LoadedDate)180626202433(/LoadedDate)
    (/PackingListItems)
    (PackingListItems)
    (LoadNumber)4117127(/LoadNumber)
    (BOLNumber)101091240100(/BOLNumber)
    (TopLevelPackageID)(/TopLevelPackageID)
    (PackageID)003384550310000001(/PackageID)
    (PackageItemCount)1(/PackageItemCount)
    (PackageType)BOX(/PackageType)
    (PackageItemType)CABINETS(/PackageItemType)
    (SONumber)00338455-00(/SONumber)
    (OrderLineNumber)31.00(/OrderLineNumber)
    (ShippedQuantity)1(/ShippedQuantity)
    (LoadedDate)180626223336(/LoadedDate)
    (/PackingListItems)
    (PackingListItems)
    (LoadNumber)4117127(/LoadNumber)
    (BOLNumber)101091240100(/BOLNumber)
    (TopLevelPackageID)(/TopLevelPackageID)
    (PackageID)003384550310000002(/PackageID)
    (PackageItemCount)1(/PackageItemCount)
    (PackageType)BOX(/PackageType)
    (PackageItemType)CABINETS(/PackageItemType)
    (SONumber)00338455-00(/SONumber)
    (OrderLineNumber)31.00(/OrderLineNumber)
    (ShippedQuantity)1(/ShippedQuantity)
    (LoadedDate)180626221706(/LoadedDate)
    (/PackingListItems)

with this code
IF sFile <> "" THEN
	
	XMLDoc is a xmlDocument
	
	// Open the XML file
	XMLDoc = XMLOpen(sFile)
	nCounter is int=1
	MainNode is a xmlNode
	EntryNode is a xmlNode
	FOR EACH MainNode OF XMLDoc.OrderAndShipments
		// Browse the children of the STARTERS node
		IF XMLDoc.OrderAndShipments.OrderHeaders..Name = "OrderHeaders"
			FOR EACH EntryNode OF XMLDoc.OrderAndShipments.OrderHeaders
				Trace(XMLDoc.OrderAndShipments.OrderHeaders..Name + TAB + EntryNode..Name + TAB + EntryNode..Text)
			END	
		END
		nCounter+=1
		Trace(nCounter)
	END
	
END

The issue is it only reads the first set of OrderHeaders. There are 576 Order Headers then 12,000 Order Deatils and then 12,000 PacklistItems

Viewing all articles
Browse latest Browse all 1914

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>