[796] | 1 | TMGXML1 ;TMG/kst/XML Exporter -- Testing code ;03/25/06
|
---|
| 2 | ;;1.0;TMG-LIB;**1**;07/09/05
|
---|
| 3 |
|
---|
| 4 | ;"This is a test file for working with XML Documents
|
---|
| 5 | Start ;
|
---|
| 6 |
|
---|
| 7 | ;"Kevin Toppenberg, MD 7-9-04
|
---|
| 8 | ;"This is a test file for working with XML Documents
|
---|
| 9 |
|
---|
| 10 | new Y,PATH,FILE,GBLREF
|
---|
| 11 | kill ^TMP("KT",$J)
|
---|
| 12 |
|
---|
| 13 | set PATH="/home/kdtop"
|
---|
| 14 |
|
---|
| 15 | write "-----------------------",!
|
---|
| 16 | read "Enter Filename:",FILE
|
---|
| 17 | write !
|
---|
| 18 | if FILE="^" quit
|
---|
| 19 | if FILE="" set FILE="XMLSample#2.xml" write "Using default: ",FILE,!
|
---|
| 20 |
|
---|
| 21 | set GBLREF="^TMP(""KT"","_$J_",0)"
|
---|
| 22 | set Y=$$FTG^%ZISH(PATH,FILE,GBLREF,3)
|
---|
| 23 | if 'Y write "error opening file.",! quit
|
---|
| 24 |
|
---|
| 25 | ;zwr ^TMP("KT",$JOB,*)
|
---|
| 26 |
|
---|
| 27 | ;"do EN^MXMLTEST($NAME(^TMP("KT",$J)),"V")
|
---|
| 28 |
|
---|
| 29 | write "---------------------------",!
|
---|
| 30 | write "Part #2",!,!
|
---|
| 31 |
|
---|
| 32 | new FileName
|
---|
| 33 | set FileName=PATH_"/"_FILE
|
---|
| 34 | ;write "FileName=",FileName,!
|
---|
| 35 |
|
---|
| 36 | new FnArray
|
---|
| 37 | set FnArray="Array of Callback Functions"
|
---|
| 38 | set FnArray("STARTDOCUMENT")="StartDoc^TMGXML1"
|
---|
| 39 | set FnArray("ENDDOCUMENT")="EndDoc^TMGXML1"
|
---|
| 40 | set FnArray("DOCTYPE")="DocType^TMGXML1"
|
---|
| 41 | set FnArray("STARTELEMENT")="StartElement^TMGXML1"
|
---|
| 42 | set FnArray("ENDELEMENT")="EndElement^TMGXML1"
|
---|
| 43 | set FnArray("CHARACTERS")="Chars^TMGXML1"
|
---|
| 44 |
|
---|
| 45 | ;write "Here is FnArray",!
|
---|
| 46 | ;zwr FnArray(*)
|
---|
| 47 |
|
---|
| 48 | write "Calling EN^MXMLPRSE",!
|
---|
| 49 | do EN^MXMLPRSE($NAME(^TMP("KT",$J)),.FnArray)
|
---|
| 50 | ;do EN^MXMLPRSE(FileName,.FnArray)
|
---|
| 51 | write "Done calling EN^MXMLPRSE",!
|
---|
| 52 |
|
---|
| 53 | write "---------------------------",!
|
---|
| 54 | write "Part #3",!,!
|
---|
| 55 |
|
---|
| 56 | new ParseHandle
|
---|
| 57 | write "Calling EN^MXMLDOM",!
|
---|
| 58 | set ParseHandle=$$EN^MXMLDOM($NAME(^TMP("KT",$J)),"V")
|
---|
| 59 | write "Done calling EN^MXMLDOM",!
|
---|
| 60 | write "Handle=",ParseHandle,!
|
---|
| 61 |
|
---|
| 62 | do ShowNode(1,0)
|
---|
| 63 | do ListChildren(1,1)
|
---|
| 64 |
|
---|
| 65 |
|
---|
| 66 | do DELETE^MXMLDOM(ParseHandle)
|
---|
| 67 |
|
---|
| 68 | kill ^TMP("KT",$J)
|
---|
| 69 | write "********************",!
|
---|
| 70 | write "Quiting normally",!
|
---|
| 71 |
|
---|
| 72 | QuitLabel quit
|
---|
| 73 |
|
---|
| 74 |
|
---|
| 75 | ;"-------------------------------------------------------------
|
---|
| 76 |
|
---|
| 77 | StartDoc
|
---|
| 78 | write "##Starting Document Processing##",!
|
---|
| 79 | quit
|
---|
| 80 |
|
---|
| 81 | EndDoc
|
---|
| 82 | write "##End of Document Processing##",!
|
---|
| 83 | quit
|
---|
| 84 |
|
---|
| 85 |
|
---|
| 86 | DocType(ROOT,PUBID,SYSID)
|
---|
| 87 | write "Doctype encountered.",!
|
---|
| 88 | write "ROOT=",ROOT,!
|
---|
| 89 | write "PUBID=",PUBID,!
|
---|
| 90 | write "SYSID=",SYSID,!
|
---|
| 91 | quit
|
---|
| 92 |
|
---|
| 93 |
|
---|
| 94 | StartElement(NAME,ATTRLIST)
|
---|
| 95 | write "Attrib:"
|
---|
| 96 | write "Name=",NAME,!
|
---|
| 97 | if $data(ATTRLIST) do
|
---|
| 98 | . write "AttrList:"
|
---|
| 99 | . zwr ATTRLIST
|
---|
| 100 | quit
|
---|
| 101 |
|
---|
| 102 | EndElement(NAME)
|
---|
| 103 | write "End Attrib:"
|
---|
| 104 | write NAME,!
|
---|
| 105 | quit
|
---|
| 106 |
|
---|
| 107 | Chars(TEXT)
|
---|
| 108 | write "TEXT:",TEXT,!
|
---|
| 109 | quit
|
---|
| 110 |
|
---|
| 111 |
|
---|
| 112 | ;"-------------------------------------------------------------
|
---|
| 113 |
|
---|
| 114 | ListChildren(Node,IndentN)
|
---|
| 115 | new ChildNode
|
---|
| 116 | set ChildNode=$$CHILD^MXMLDOM(ParseHandle,Node,0)
|
---|
| 117 | if ChildNode=0 quit
|
---|
| 118 |
|
---|
| 119 | new loop
|
---|
| 120 | for loop=1:1 do if ChildNode=0 quit
|
---|
| 121 | . do ShowNode(ChildNode,IndentN)
|
---|
| 122 | . do ListChildren(ChildNode,IndentN+1)
|
---|
| 123 | . set ChildNode=$$CHILD^MXMLDOM(ParseHandle,Node,ChildNode)
|
---|
| 124 |
|
---|
| 125 | quit
|
---|
| 126 |
|
---|
| 127 | ShowNode(Node,IndentN)
|
---|
| 128 | new NodeText
|
---|
| 129 | new AttribText
|
---|
| 130 |
|
---|
| 131 | do Indent(IndentN)
|
---|
| 132 | write $$NAME^MXMLDOM(ParseHandle,Node),!
|
---|
| 133 | if $$CMNT^MXMLDOM(ParseHandle,Node,$NAME(NodeText)) do
|
---|
| 134 | . do Indent(IndentN)
|
---|
| 135 | . write " Comment: ",NodeText(1),!
|
---|
| 136 | if $$TEXT^MXMLDOM(ParseHandle,Node,$NAME(NodeText)) do
|
---|
| 137 | . do Indent(IndentN)
|
---|
| 138 | . write " '",NodeText(1),"'",!
|
---|
| 139 | set AttribText=$$ATTRIB^MXMLDOM(ParseHandle,Node)
|
---|
| 140 | if $data(AttribText),AttribText'="" do
|
---|
| 141 | . do Indent(IndentN)
|
---|
| 142 | . write " Attrib: ",AttribText,"="
|
---|
| 143 | . write $$VALUE^MXMLDOM(ParseHandle,Node,AttribText),!
|
---|
| 144 |
|
---|
| 145 | quit
|
---|
| 146 |
|
---|
| 147 |
|
---|
| 148 | Indent(IndentN)
|
---|
| 149 | for i=1:1:IndentN write " "
|
---|
| 150 |
|
---|