STD.System.Debug.GetXMLParseTree ( )
Return: | GetXMLParseTree returns a STRING value. |
The GetXMLParseTree function returns a textual representation of the match that occurred, using XML tags to indicate nesting. This function is only used within the RECORD or TRANSFORM structure that defines the result of a PARSE operation. This function is useful for debugging PARSE operations.
Example:
IMPORT STD; r := {string150 line}; d := dataset([ {'Ge 34:2 And when Shechem the son of Hamor the Hivite, '+ 'prince of the country, saw her, he took her, and lay with her, '+ 'and defiled her.'}, {'Ge 36:10 These are the names of Esaus sons; Eliphaz the son of '+ 'Adah the wife of Esau, Reuel the son of Bashemath the wife of '+ 'Esau.'} ],r); PATTERN ws := [' ','\t',',']*; PATTERN patStart := FIRST | ws; PATTERN patEnd := LAST | ws; PATTERN article := ['A','The','Thou','a','the','thou']; TOKEN patWord := PATTERN('[a-zA-Z]+'); TOKEN Name := PATTERN('[A-Z][a-zA-Z]+'); RULE Namet := name OPT(ws 'the' ws name); PATTERN produced_by := OPT(article ws) ['son of','daughter of']; PATTERN produces_with := OPT(article ws) ['wife of']; RULE progeny := namet ws ( produced_by | produces_with ) ws namet; results := RECORD STRING LeftName := MATCHTEXT(Namet[1]); STRING RightName := MATCHTEXT(Namet[2]); STRING LinkPhrase := IF(MATCHTEXT(produced_by[1])<>'', MATCHTEXT(produced_by[1]), MATCHTEXT(produces_with[1])); STRING Tree := STD.System.Debug.getXMLParseTree(); END; outfile1 := PARSE(d,line,progeny,results,SCAN ALL); /* the Tree field output looks like this: <namet> <name>Shechem</name> </namet> <ws> </ws> <produced_by>the son of</produced_by> <ws> </ws> <namet> <name>Hamor</name> </namet> */