Sorry for the long post......
I am finding it difficult to retrieve the distinct values from a node with my XML file and the code which i have developed so far.
Function Design_TEST() For Each Folder In xmlDoc.SelectNodes("//FOLDER") FolderName = Folder.getAttribute("NAME") For Each Mapping In Folder.SelectNodes("MAPPING") MappingName = Mapping.getAttribute("NAME") r = Range_Find_Method() mainWorkBook.Sheets(S4).Range("A" & r + 2).Value = "Mapping Name" mainWorkBook.Sheets(S4).Range("B" & r + 2).Value = MappingName For Each Instance In Mapping.SelectNodes("INSTANCE[@TRANSFORMATION_TYPE='Source Qualifier']") InstanceName = Instance.getAttribute("NAME") For Each Connector In Mapping.SelectNodes("CONNECTOR[@FROMINSTANCE='" & InstanceName & "']") ConnectToInstance = Connector.getAttribute("TOINSTANCE") ConnectFromInstance = InstanceName r = Range_Find_Method() mainWorkBook.Sheets(S4).Range("A" & r + 1).Value = ConnectFromInstance mainWorkBook.Sheets(S4).Range("B" & r + 1).Value = ConnectToInstance Next 'End of For loop for Connector Next ' End of For loop for Instance Next 'End of For loop for Mapping Next 'End of For loop for Folder End Function The output i am getting is:
Mapping Name|m_load_map1
SQ_DW_LOC_ID|exp_DW_LOC_ID
SQ_DW_LOC_ID|exp_DW_LOC_ID
SQ_DW_LOC_ID|exp_DW_LOC_ID
SQ_DW_LOC_ID|exp_DW_LOC_ID
SQ_DW_LOC_ID|exp_DW_LOC_ID
SQ_DW_LOC_ID|exp_DW_LOC_ID
SQ_DW_LOC_ID|exp_DW_LOC_ID
SQ_DW_LOC_ID|exp_DW_LOC_ID
SQ_DW_LOC_ID|exp_DW_LOC_ID
SQ_YIELDPOOL|exp_YIELDPOOL
SQ_YIELDPOOL|exp_YIELDPOOL
SQ_YIELDPOOL|exp_YIELDPOOL
But the ouput i need is :
Mapping Name|m_load_map1
SQ_DW_LOC_ID|exp_DW_LOC_ID
SQ_YIELDPOOL|exp_YIELDPOOL
I went through some old posts and understood that i need to use "following-sibling" or "preceding::row". But i am not able to understand how to fit this to my requirement. Any suggestions to achieve the above output? Would be really great if i can get any inputs!!!
Below is my input XML file:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE POWERMART SYSTEM "powrmart.dtd"> <POWERMART CREATION_DATE="10/07/2016 14:19:24" REPOSITORY_VERSION="181.90"> <REPOSITORY NAME="infa_edw_dev_new" VERSION="181" CODEPAGE="Latin1" DATABASETYPE="Oracle"> <FOLDER NAME="DEV_rocky" GROUP="" OWNER="Administrator" SHARED="NOTSHARED" DESCRIPTION="" PERMISSIONS="rwx---r--" UUID="2cc91af7-8250-4616-9861-d9e2c441a5c7"> <MAPPING DESCRIPTION ="" ISVALID ="YES" NAME ="m_load_map1" OBJECTVERSION ="1" VERSIONNUMBER ="1"> <INSTANCE DESCRIPTION ="" NAME ="exp_DW_LOC_ID" REUSABLE ="NO" TRANSFORMATION_NAME ="exp_DW_LOC_ID" TRANSFORMATION_TYPE ="Expression" TYPE ="TRANSFORMATION"/> <INSTANCE DESCRIPTION ="" NAME ="exp_YIELDPOOL" REUSABLE ="NO" TRANSFORMATION_NAME ="exp_YIELDPOOL" TRANSFORMATION_TYPE ="Expression" TYPE ="TRANSFORMATION"/> <INSTANCE DESCRIPTION ="" NAME ="SQ_DW_LOC_ID" REUSABLE ="NO" TRANSFORMATION_NAME ="SQ_DW_LOC_ID" TRANSFORMATION_TYPE ="Source Qualifier" TYPE ="TRANSFORMATION"> <ASSOCIATED_SOURCE_INSTANCE NAME ="STATIONS"/> <ASSOCIATED_SOURCE_INSTANCE NAME ="YIELDLOCATION"/> <ASSOCIATED_SOURCE_INSTANCE NAME ="YIELDPOOL2"/> <ASSOCIATED_SOURCE_INSTANCE NAME ="LOCATIONBRAND"/> </INSTANCE> <INSTANCE DESCRIPTION ="" NAME ="SQ_YIELDPOOL" REUSABLE ="NO" TRANSFORMATION_NAME ="SQ_YIELDPOOL" TRANSFORMATION_TYPE ="Source Qualifier" TYPE ="TRANSFORMATION"> <ASSOCIATED_SOURCE_INSTANCE NAME ="YIELDPOOL"/> </INSTANCE> <CONNECTOR FROMFIELD ="YIELDLOCATION" FROMINSTANCE ="SQ_DW_LOC_ID" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="YIELDLOCATION" TOINSTANCE ="exp_DW_LOC_ID" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="STATION" FROMINSTANCE ="SQ_DW_LOC_ID" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="STATION" TOINSTANCE ="exp_DW_LOC_ID" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="YIELDPOOL" FROMINSTANCE ="SQ_DW_LOC_ID" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="YIELDPOOL" TOINSTANCE ="exp_DW_LOC_ID" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="LOCATIONDESCRIPTION" FROMINSTANCE ="SQ_DW_LOC_ID" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="LOCATIONDESCRIPTION" TOINSTANCE ="exp_DW_LOC_ID" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="SMALLLOCATIONDESC" FROMINSTANCE ="SQ_DW_LOC_ID" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="SMALLLOCATIONDESC" TOINSTANCE ="exp_DW_LOC_ID" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="MODELTYPE" FROMINSTANCE ="SQ_DW_LOC_ID" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="MODELTYPE" TOINSTANCE ="exp_DW_LOC_ID" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="POOLDESCRIPTION" FROMINSTANCE ="SQ_DW_LOC_ID" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="POOLDESCRIPTION" TOINSTANCE ="exp_DW_LOC_ID" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="DIVISION" FROMINSTANCE ="SQ_DW_LOC_ID" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="DIVISION" TOINSTANCE ="exp_DW_LOC_ID" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="BRAND" FROMINSTANCE ="SQ_DW_LOC_ID" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="BRAND" TOINSTANCE ="exp_DW_LOC_ID" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="YIELDPOOL" FROMINSTANCE ="SQ_YIELDPOOL" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="YIELDPOOL" TOINSTANCE ="exp_YIELDPOOL" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="POOLDESCRIPTION" FROMINSTANCE ="SQ_YIELDPOOL" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="POOLDESCRIPTION" TOINSTANCE ="exp_YIELDPOOL" TOINSTANCETYPE ="Expression"/> <CONNECTOR FROMFIELD ="DIVISION" FROMINSTANCE ="SQ_YIELDPOOL" FROMINSTANCETYPE ="Source Qualifier" TOFIELD ="DIVISION" TOINSTANCE ="exp_YIELDPOOL" TOINSTANCETYPE ="Expression"/> </MAPPING> </FOLDER> </REPOSITORY> </POWERMART>
No comments:
Post a Comment